我刚开始学习有点操作并且想要问为什么和1(& 1)按位操作总是返回0或1。
答案 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之外,它不能返回任何值。