js按位运算符/二进制运算符的简单简绍和使用
&、|、^、~、<<、>>
&
按位与,两数同位是1对应位才是1
js
1 & 2 // 0 (0001 且 0010 = 0000 = 0)
|
按位或,两数同位是0对应位才是0
js
1 | 2 // 3 (0001 或 0010 = 0011 = 3)
^
按位异或,两数同位相同都取0,不同都取1
js
1 ^ 2 // 3 (0001 异或 0010 = 0011 = 3)
~
按位非,每位取反的补码
js
~2 // -3
<<
左移,二进制所有位都左移规定的次数
js
1 << 1 // 2 (0001 左移 1 = 0010 = 2)
>>
右移,二进制所有位都右移规定的次数
js
1 >> 1 // 2 (0001 右移 1 = 0000 = 0)
运用
用位运算符来小数取整
js
~~3.14 // 3
~~-3.14 // -3
3.14 | 0 // 3
3.14 >> 0 // 3
3.14 << 0 // 3
用&运算符判断一个数的奇偶
n & 1 如果值为0,n是偶数;值为1,n为奇数
js
7 & 1 // 1
8 & 1 // 0
生成一个随机颜色值
js
'#' + (~~(Math.random() * (1 << 24))).toString(16)