谁能解释下这句的含义Loop While (Val And &H2),谢谢
Dim Val As Long
Do
...
变量Val的值一直在变化
...
Loop While (Val And &H2) <- 请问这个条件是什么意思?
[解决办法]
(Val And &H2) 是测试Val的第1位(即二进制的从右边数2位)是否是1
它等价于
(Val And &H2) <> 0
[解决办法]
(Val And &H2) <> 0
注意括号的位置, 千万不要写成: (Val And &H2 <> 0)
也千万不要把括号拿掉, 变成: Val And &H2 <> 0
因为在VB中, 关系运算符(=、 <、> 、 <=、> =、 <> )的运算优先级高于逻辑运算符(AND、OR、XOR)
[解决办法]
将Val的值与&H2进行按位布尔“与”运算……
例如,Val=15=&HF=000....001111(bin)
&H2=000....000010(bin)
000...001111
and 000...000010
----------------
000...000010(bin)=2=&H2
只要这个计算结果为非0,在这里就可以看作条件成立,执行循环。