1+1=2,在十进制计算中是正确的,但是在二进制计算中,1+1=10;对于二进制数 100 取反,等于 001,而不是 -100。7 个,分为两类:逻辑位运算符:位与(&)、位或(|)、位异或(^)、非位(~)
移位运算符:左移(<<)、右移(>>)、无符号右移(>>>)
& 运算符& 运算符(位与)用于对两个二进制操作数逐位进行比较,并根据下表所示的换算表返回结果。| 第一个数的位值 | 第二个数的位值 | 运算结果 |
|---|---|---|
| 1 | 1 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 0 |
1 表示 true,0 表示 false,反之亦然。console.log(12 | 5); //返回值13
12 和 5 进行位或运算的过程。通过位或运算,除第 2 位的值为 false 外,其他位均返回 true。
^ 运算符^ 运算符(位异或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。| 第一个数的位值 | 第二个数的位值 | 运算结果 |
|---|---|---|
| 1 | 1 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 0 | 0 | 0 |
console.log(12 ^ 5); //返回值9
12 和 5 进行位异或运算的过程。通过位异或运算,第 1、4 位的值为 true,而第 2、3 位的值为 false。
~ 运算符~ 运算符(位非)用于对一个二进制操作数逐位进行取反操作。1 步:把运算数转换为 32 位的二进制整数。2 步:逐位进行取反操作。3 步:把二进制反码转换为十进制浮点数。console.log(~12); //返回值-13

1。例如:console.log(~12 == 12 - 1); //返回true
原文:https://www.cnblogs.com/frank-link/p/14608876.html