Appearance
位运算:operators 
- 按位操作符(Bitwise operators) 将其操作数(operands)当作 32 位的比特序列(由 0 和 1 组成),而不是十进制、十六进制或八进制数值。
 - 例如,十进制数 9,用二进制表示则为 1001。
 - 按位操作符操作数字的二进制形式,但是返回值依然是标准的 JavaScript 数值。
 
&:与 
简述:真真为真,其余为假
 用法:a & b
 描述:对于每一个比特位,只有两个操作数相应的比特位都是 1 时,结果才为 1,否则为 0。
js
1 & 3; // 1
// 1     (base 10) = 00000000000000000000000000000001 (base 2)
// 3     (base 10) = 00000000000000000000000000000011 (base 2)
//                ---------------------------------------
// 1 & 3 (base 10)   00000000000000000000000000000001 (base 2) = 1 (base 10)
3 & 8; // 0
// 3     (base 10) = 00000000000000000000000000000011 (base 2)
// 8     (base 10) = 00000000000000000000000000001000 (base 2)
//                ---------------------------------------
// 3 & 8 (base 10)   00000000000000000000000000000000 (base 2) = 0 (base 10)|:或 
简述:假假为假,其余为真
 用法:a | b
 描述:对于每一个比特位,当两个操作数相应的比特位至少有一个 1 时,结果为 1,否则为 0。
|=: 按位或赋值 
用法:a |= b
 描述:执行按位或运算,并将结果分配给变量。
ts
let a = 5;
a |= 3;
// 00000000000000000000000000000101
// 00000000000000000000000000000011
console.log(a); // 7
// 00000000000000000000000000000111^:异或 
用法:a ^ b
 描述:对于每一个比特位,当两个操作数相应的比特位有且只有一个 1 时,结果为 1,否则为 0。
~:非 
简述:真为假,假为真
 用法:~ a
 描述:反转操作数的比特位,即 0 变成 1,1 变成 0。
<<:左移 
用法:a << b
 描述:将 a 的二进制形式向左移 b (< 32) 比特位,右边用 0 填充。
>>:右移 
用法:a >> b
 描述:将 a 的二进制表示向右移 b (< 32) 位,丢弃被移出的位。
>>>:无符号右移 
用法:a >>> b
 描述:将 a 的二进制表示向右移 b (< 32) 位,丢弃被移出的位,并使用 0 在左侧填充。
进制转换与查看: 
数字怎么转换进制呢?(示例只取 6 位)
- 10 进制转其他 
toString(x) 
js
const borderTown = 8;
// 转成2进制
borderTown.toString(2); // "001000"
// 解析"1000":1*2^3 + 0*2^2 + 0*2^1 + 0*2^0
//            8     + 0     + 0     + 0      =  8
// 转成8进制
borderTown.toString(8); // "000010"
// 转成16
borderTown.toString(16); // "000008"- 其他转 10 进制 
parseInt(value, x) 
js
parseInt("001000", 2); // 8
parseInt("000010", 8); // 8
// 16和10一样,是不是。
parseInt("000008", 16); // 8
parseInt("000008", 10); // 8