在运算符"&"的java中按位AND

Joh*_*hen 5 java bitwise-operators bitwise-and

我刚刚阅读以下代码:

byte[] bts = {8, 0, 0, 0};
if ((bts[i] & 0x01) == 0x01)
Run Code Online (Sandbox Code Playgroud)

这是否与此相同

if (bts[i] == 0x01)
Run Code Online (Sandbox Code Playgroud)

如果没有,它们之间有什么区别?

在这里尝试做的第一种方式是什么?

Arm*_*yan 13

不,它没有.

if(bts[i] == 0x01)
Run Code Online (Sandbox Code Playgroud)

表示如果bts [i]等于1.

if((bts[i] & 0x01) == 0x01) 
Run Code Online (Sandbox Code Playgroud)

表示bts [i]的最低有效位是否等于1.

例.

bts[i] = 9 //1001 in binary

if(bts[i] == 0x01) //false

if((bts[i] & 0x01) == 0x01) //true
Run Code Online (Sandbox Code Playgroud)