print 100 and true 结果为100 print 100 or true 结果为-1,为什么?
谢谢
[解决办法]
这个问题以前遇到过
true 在做位运算的时候自动转化成 &HFFFF 也就是 integer的 -1
100 and true= &H0064 AND &HFFFF=&H0064=100
100 OR true= &H0064 OR &HFFFF=&HFFFF= -1
[解决办法]
Debug.Print "&H " & Hex$(100 And True) Return:&H64
Debug.Print "&H " & Hex$(100 Or True) Return:&HFFFF
[解决办法]
按位的布尔运算:
100(D)=[24个0]01100100(B)
true=-1(D)=[24个1]11111111(B)
[24个0]01100100(B)
AND [24个1]11111111(B)
----------------------
[24个0]01100100(B)=100(D)
[24个0]01100100(B)
OR [24个1]11111111(B)
----------------------
[24个1]11111111(B)=-1(D)