上一篇中总结了二进制与十进制的转换,下面再来总结位运算,其实就是对二进制数执行的计算
- 逻辑位运算符
位与(&)、位或(|)、位异或(^)、非位(~)
"&"运算
用于对两个二进制操作数逐位进行比较,并根据下表所示的换算表返回结果
第一个数的位值 | 第一个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
例如:计算 12& 5
分别将其转换为二进制数值,再逐位进行计算
12 和 5 进行位与运算,则返回值为 4。
- “|”运算
“|”运算符(位或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果
第一个数的位值 | 第一个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
例如:计算 12 | 5
12 和 5 进行位或运算,则返回值为 13。
- “^”运算
^的规律(特点)
特点1、大小相同的数字异或为0,任何数字异或0均为本身
例如:
- 1 ^ 1 = 0,
- 2 ^ 0 = 2 ,
- 3 ^ 0 = 3
特点2、A ^ B ^ B = A 由1可得2 因为B ^ B =0, 0 ^ A = A
“^”运算符(位异或)用于对两个二进制操作数逐位进行比较,并根据如表格所示的换算表返回结果。
第一个数的位值 | 第一个数的位值 | 运算结果 |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
例如:计算 12 ^ 5
所以,12 和 5 进行位异或运算,则返回值为 9
- “~”运算
按位非操作符由一个波浪线(~)表示,操作它可以返回数值的反码,其本质是操作数的负值减1.对一个整数两次按位非得到它的自身, 对于小数两次按位非可以得到取整的效果。
<script>let n = 9;let i = 9.9;let m = ~n;console.log(m); //-10console.log(~~n);//9console.log(~~i);//9
</script>