VB程序中实现字节移位操作

在利用VB系统开发数据采集或工业控制软件,或对文件进行低级操作时,常需要对字节进行移位操作,但VB系统中没有提供字节移位操作的指令和函数,只提供了And(与)、Or(或)、Xor(异或)、Equ(同或)、Not(非)等几个逻辑运算指令。笔者在用VB系统开发工业控制软件的过程中,就遇到了这个问题,于是利用VB中已有的逻辑运算指令,模拟汇编语言的字节移位指令,编制了七个字节移位函数:逻辑左移、逻辑右移、算术右移、循环左移、循环右移、进位循环左移和进位循环右移。

在汇编语言指令中,逻辑左移的功能相当于乘2, 逻辑右移的功能相当于除2,利用这个特性,在VB程序中用乘2和除2方法实现位的左移和右移,然后再用And(与)和Or(或)逻辑运算指令,判断移位过程中是否有进位发生,将进行标志置位。

程序清单

CF是进位标志,采用Boolean类型逻辑变量,如果CF为True表示有进位,为False则表示无进位。

Public CF As Boolean   进位标志

1.逻辑左移

Public Function SHL(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

BD = OPR

For i = 1 To n - 1

BD = (BD And &H7F) * 2 将D7位屏蔽左移,防止字节溢出

Next i

CF = BD And &H80 判断D7位是否进位

SHL = (BD And &H7F) * 2

End Function

2.逻辑右移

Public Function SHR(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

BD = OPR

For i = 1 To n - 1

BD = BD 2 右移

Next i

CF = BD And 1 判断D0位是否进位

SHR = BD 2

End Function

3.算术右移

Public Function SAR(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

Dim Fg1 As Byte

BD = OPR

Fg1 = BD And &H80

For i = 1 To n - 1

BD = BD 2 右移

Next i

CF = BD And 1 判断D0位是否进位

BD = BD 2 右移

SAR = BD Or Fg1

End Function

4.循环左移

Public Function ROL(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

Dim Fg1 As Byte

BD = OPR

For i = 1 To n

Fg1 = (BD And &H80) 128 判断D7位是否进位

BD = ((BD And &H7F) * 2) Or Fg1 带进位左移

Next i

CF = Fg1

ROL = BD

End Function

5.循环右移

Public Function ROR(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

Dim Fg1 As Byte

Dim Fg2 As Byte

BD = OPR

For i = 1 To n

Fg1 = (BD And 1) * 128 判断D0位是否进位

BD = (BD 2) Or Fg1 带进位右移

Next i

CF = Fg1

ROR = BD

End Function

6.进位循环左移

Public Function RCL(OPR As Byte, n As Integer) As Byte

Dim BD As Byte

Dim I As Integer

Dim Fg1 As Byte

Dim Fg2 As Byte

BD = OPR

Fg2 = CF And 1

For i = 1 To n

Fg1 = (BD And &H80) 128 判断D7位是否进位

BD = ((BD And &H7F) * 2) Or Fg2 带进位左移

点击复制链接 与好友分享!回本站首页
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
上一篇:字符串中文的问题
下一篇:VB中字符串中文的问题
相关文章
图文推荐
VB程序中实现字节移位操作
VB 实现仿迅雷自动下
VB程序中实现字节移位操作
VB实现光驱弹出原理
VB程序中实现字节移位操作
VB 浅谈熊猫烧香病毒
VB程序中实现字节移位操作
VB IFEO镜像劫持技术

VB程序中实现字节移位操作

排行
热门
52 | VB操作SQL Server(一)——如何连接
29 | VB 浅谈熊猫烧香病毒一些原理
24 | VB中的atn函数
20 | VB中如何将msflexgrid控件中的数据导成
18 | vb实现多用户登录
18 | VB一句话设置系统服务自启动
17 | Grid++Report 入手教程:VB 通过Grid
17 | VB IFEO镜像劫持技术
VB分割字符串为数组 字符串转数组
VB生成随机字母 VB产生随机数字
vb.net chart图表使用技巧之一
VB保存/写入/储存TXT/文本文件
VB中日期加减法运算,字符串型转化为日
VB循环逐行读取TextBox控件内容
VB中输入和输出数据的总结
VB中对EXCEL的各种操作
文章
下载
读书
· Win2000下关闭无用端口
· 禁止非法用户登录综合设置 [win9x篇]
· 关上可恶的后门——消除NetBIOS隐患
· 网络入侵检测系统
· 潜伏在Windows默认设置中的陷井
· 调制解调器的不安全
· 构建Windows 2000服务器的安全防护林
· SQL Server 2000的安全配置
· Windows优化大师注册机源码
· Process Viewer 汉化版
· Aspcode动画教程
· WIN 2000服务器防止ICMP数据包攻击教程
· 实现网络隐身的简单方法
· 手工进行克隆帐号
· 用W32DASM破解网页合并器的密码
· 注册表操作动画教程
· 黑客攻防技术宝典:Web实战篇(第2版)
· 超级网管员——网络安全
· 代码大全(第二版)
· 软件之道:软件开发争议问题剖析
· CSS插件工具箱
· CSS入门经典(第3版)
· C#并行编程高级教程:精通.NET 4 Pa
· CMMI+敏捷整合开发

分类:默认分类 时间:2012-01-03 人气:7
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.049 (s). 9 q(s)