①.左移10位,1后面加10个0
结果就是:10000000000
第五段:按位运算符
注意不能在VB.Net中直接使用以下二进制数,使用时需转换为相应的十六或十进制数字.
一个变量包含两个字符,转换算法如下.
'VB是没有移位命令的,但是可以自定义移位函数.
'位左移?
Public?Function?SHL(nSource?As?Long,?n?As?Byte)?As?Long?
End?Function?
'位右移?
Public?Function?SHR(nSource?As?Long,?n?As?Byte)?As?Long?
'获得指定的位?
Public?Function?GetBits(nSource?As?Long,?n?As?Byte)?As?Boolean?
'设置指定的位?
Public?Function?SetBits(nSource?As?Long,?n?As?Byte)?As?Long?
'清除指定的位?
Public?Function?ResetBits(nSource?As?Long,?n?As?Byte)?As?Long?
'注:以上的所有函数,没有考虑溢出的问题,请自行添加相关处理.
见下面代码,放置定时器,按钮,标签各一个
Public?Class?Form1
Private?Sub?Timer1_Tick(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Timer1.Tick?'定时器
If?Label1.Right?Me.Width?Then
Label1.Left?+=?10'移动距离
Else
Label1.Left?=?0
End?If
End?Sub
Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click?'开启或者关闭定时器
Timer1.Interval?=?1000?'1秒
If?Timer1.Enabled?=?False?Then
Timer1.Start()?'开定时器
Timer1.Stop()?'关定时器
End?Class
逻辑运算符中所含的And 运算符,Eqv 运算符,Imp 运算符,Not 运算符,Or 运算符,Xor 运算符等均可用来实现位运算.
算术运算符的* 运算符,\ 运算符可用于左移和右移位运算.
And 运算符,还对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
Or 运算符,对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
Xor 运算符既可作为逻辑运算符,也可作为位运算符.使用互斥或的逻辑进行的两个表达式的逐位比较,其结果通过下表说明: