1. 按位操作的概念:
按位操作为, 将数据转化为二进制八位展示/十六位展示后根据条件进行计算的操作
2. 按位运算符分类:
&: 按位与
|: 按位或
^: 按位异或
~: 按位非
<<: 左移运算符
>>: 右移运算符
>>>: 无符号右移
3. 具体讲解:
&: 按位与 ---- 将数据变为二进制后每一位数字进行 “与” 的操作, 按位对比,1, 1 -> 1, 其余均为0
例:console.log(1 & 3) // 1
分别转换为2进制 1 ---> 00000001
3 ---> 00000011
按照与的操作 结果 00000001 -> 对应10进制的 1
(1,1 -> 1, 其余均为0 )
|: 按位或 ---- 将数据变为二进制后每一位数字进行 “或” 的操作, 按位对比, 0,0 -> 0, 其余均为1
例: console.log(1 | 3) // 3
分别转换为2进制 1 ---> 00000001
3 ---> 00000011
按照或的操作 结果 00000011 -> 对应10进制的 3
(0,0 -> 0, 其余均为1)
^: 按位异或 ---- 将数据变为二进制后每一位数字进行 “异或” 的操作, 按位对比,相同为0, 不同为1
例: console.log(1 ^ 3) // 2
分别转换为2进制 1 ---> 00000001
3 ---> 00000011
按照或的操作 结果 00000010 -> 对应10进制的 2
(相同为0, 不同为1)
~: 按位非 ---- 将数据变为二进制后每一位数字进行 “非” 的操作
例: console.log(~1) // 2 console.log(~-1)
分别转换为2进制 1 ---> 00000001 10000001
取反 -> 得到补码 11111110 01111110
第一位为符号位, 0为+, 1为- - +
取下补码1 剩余数据 1111110 1111110
取反 0000001 1111111 -- 负数先+1
+1 0000010 0000000 -- 后取反
转10进制,加上符号 ---> -2 0
标签:---,console,进制,00000001,运算符,异或,按位 From: https://www.cnblogs.com/workJiang/p/17834111.html