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

hun*_*dev 2 javascript bit-manipulation bitwise-operators bitwise-and

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

Jar*_*a X 10

0 & 0 === 0
0 & 1 === 0
1 & 0 === 0
1 & 1 === 1
Run Code Online (Sandbox Code Playgroud)

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

二进制...任何数字

xxxxxxxxxxxxx0
Run Code Online (Sandbox Code Playgroud)

要么

xxxxxxxxxxxxx1
Run Code Online (Sandbox Code Playgroud)

其中x可以是0或1

二进制1是

00000000000001
Run Code Online (Sandbox Code Playgroud)

所以

xxxxxxxxxxxxx1 &
00000000000001 ==
00000000000001

xxxxxxxxxxxxx0 &
00000000000001 ==
00000000000000
Run Code Online (Sandbox Code Playgroud)