为什么和1(& 1)按位运算始终返回0或1

时间:2017-01-06 07:38:47

标签: javascript bit-manipulation bitwise-operators bitwise-and

我刚开始学习有点操作并且想要问为什么和1(& 1)按位操作总是返回0或1。

3 个答案:

答案 0 :(得分:10)

0 & 0 === 0
0 & 1 === 0
1 & 0 === 0
1 & 1 === 1
因此,任何数字& 1将始终为0或1

二进制......任何数字

xxxxxxxxxxxxx0

xxxxxxxxxxxxx1

其中x可以是0或1

二进制中的1是

00000000000001

所以

xxxxxxxxxxxxx1 &
00000000000001 ==
00000000000001

xxxxxxxxxxxxx0 &
00000000000001 ==
00000000000000

答案 1 :(得分:1)

执行a & 1时,它将始终返回0或1,具体取决于a的最后一位二进制数字。

规则:

0 & 0 = 0
0 & 1 = 0
1 & 1 = 1

例如:

a = 5 //5 = 0101
b = a & 1  = 1 //(0101 & 0001)


a = 6 //6 = 0110
b = a  & 1 = 0 //(0110 & 0001)

答案 2 :(得分:0)

这是一个按位操作。假设你拿2&那是二进制的10和01。按位AND将给出00.BitWise操作为1将给出1或0总是因为1只有一个重要单位的二进制位。因此除了0或1之外,它不能返回任何值。