if(index& 0x88)== 0,这是如何工作的?

时间:2013-04-24 05:34:37

标签: c#

有谁能告诉我这个操作是如何运作的?索引是数字,它可以是0到128之间的任何数字。我只是不明白(索引和0x88)如何可以为0。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

0x88相当于二进制中的10001000。因此,如果索引的二进制值为0,则0xxx0xxxx,其中{{1}}为任何二进制数字。

答案 1 :(得分:2)

&运算符是按位AND,如果0x88的二进制数字和索引中的相应点都是1,则不会== 0。 在相反的情况下,如果没有数字都是1,那么&将是0

在这种情况下,你的十六进制数88是二进制的10001000,所以(index& 10001000)只要索引在第四和第八位置有0(例如,01110111)就可以等于0

答案 2 :(得分:0)

&bitwise and运算符(适用于数字时)。

例如,110 & 101 = 100

0x8810001000二进制文件。