((Value shr (nIndex-1)) and 1)=1; 这个写法可以获取到字节的指定bit状态。是1还是0,
((VALUE >> (nIndex-1)) & 1)==1 C语言中应该是这样写的吧
Test1:
28,取第三位状态=1
((28 shr (3-1)) and 1)=1
28 二进制表示:00011100
右移2位为7 二进制表示:0111 and 1
1 二进制表示:0001
0111 按位与 0001
0001
1=1 所以为真
Test2:
28取第6位=0
数学计算公式:
((28 shr (6-1)) and 1)=1
28 二进制表示:00011100
右移5位=0
0000 0001 返回FALSE=0
Test3:
175 取第五位状态=0
175 = 10101111
((175 shr (5-1)) and 1)=1
175右移四位=1010
1010 0001 全部不匹配所以=0
Test4:
175取第8位=1
((175 shr (8-1)) and 1)=1
175右移7位=0001
0001 0001 =1 为真
Test5:
175取第1位=1
((175 shr (1-1))