谁能告诉我这个操作是如何工作的?索引是数字,它可以是 0 到 128 之间的任何数字。我只是不明白 (index & 0x88) 如何为 0 或不为 0。
任何帮助将不胜感激!
0x88
相当于10001000
二进制。因此,它将是0
iff 索引的二进制值是0xxx0xxx
,其中x
是任何二进制数字。
& 运算符是按位与,如果 0x88 的二进制数字和索引中对应的点都是 1,则不会 == 0。相反的情况,如果没有一个数字都是 1,则 & 的结果将是 0
在这种情况下,您的十六进制数 88 在二进制中是 10001000,因此 (index & 10001000) 可以等于 0,只要 index 在它的第 4 和第 8 位置有 0(例如,01110111)
&
是bitwise and
运算符(应用于数字时)。
例如,110 & 101 = 100
0x88
是10001000
二进制的。