庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>VB专区>编程技巧>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

用VB进行移位操作

 作者:黄光    日期:2005-8-4 11:35:05
字号选择〖 〗/ 双击滚屏 单击停止   
VB没有提供移位操作的指令和函数,只提供and(与)、or(或)、xor(异或)、eqv(同或)、not(非)等几个运算符,而编程时有时需要对一个字节进行移位操作(如进行加密),怎么办?其实只用and、or二个运算符即可搞掂。例如要将变量byte1的第八位置1(假设byte1的二进制值为01001101),则只需byte1 or &h80 (即01001101 or 10000000),如要将第八位置0,则只需byte1 and &h7f。请看下面程序段是如何实现循
环左移的:

Public Function byteleft(byte1 As Byte, n As Integer) As Byte `将byte1左移n位
Dim intem As Byte `临时变量
Dim intem1 As Byte `临时变量
Dim x, y As Integer
intem1 = byte1
For x = 1 To n `移多少位就循环多少次
For y = 8 To 1 Step -1 `从第八位(左边第一位)开始循环左移
Select Case y
Case 8
If (intem1 And &H80) = &H80 Then `如果临时变量intem1的第八位是1,
intem = &H1 `则将临时变量intem置1,
Else
intem = &H0 `反之置0
End If
Case 7
If (intem1 And &H40) = &H40 Then `如果临时变量intem1的第七位是1,
intem1 = intem1 Or &H80 `则将其第八位置1(其它位不变),
Else
intem1 = intem1 And &H7F `反之将第八位置0(其它位不变)
End If
Case 6
If (intem1 And &H20) = &H20 Then `操作与上面相同
intem1 = intem1 Or &H40
Else
intem1 = intem1 And &HBF
End If
Case 5
If (intem1 And &H10) = &H10 Then
intem1 = intem1 Or &H20
Else
intem1 = intem1 And &HDF
End If
Case 4
If (intem1 And &H8) = &H8 Then
intem1 = intem1 Or &H10
Else
intem1 = intem1 And &HEF
End If
Case 3
If (intem1 And &H4) = &H4 Then
intem1 = intem1 Or &H8
Else
intem1 = intem1 And &HF7
End If
Case 2
If (intem1 And &H2) = &H2 Then
intem1 = intem1 Or &H4
Else
intem1 = intem1 And &HFB
End If
Case 1
If (intem1 And &H1) = &H1 Then
intem1 = intem1 Or &H2
Else
intem1 = intem1 And &HFD
End If
If intem = &H1 Then `移完第一位后,如果intem是1(即第八位是1)
intem1 = intem1 Or &H1 `则将intem1的第一位置1
Else
intem1 = intem1 And &HFE `反之置0
End If
End Select
Next y
Next x
byteleft = intem1 `将intem1的值返回给函数
End Function
参照此程序段,不难实现循环右移。
(此程序段在VB5上调试通过。)
上一篇:VB6内置的内码转换功能    下一篇:Visual Basic使用技巧  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 黄光
信息来源: 网络 录入时间: 2005-8-4 11:35:05
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿