开始
阅读前,需了解二进制取反、反码、补码知识
理解
按位与位运算即一对二进制数据比对中,只有同为1的情况下才为 1,其他为 0
例子
先看正整数的,如 4 & 3
- 先获取两个数字的二进制数据
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 1
-------------------------
0 0 0 0 0 0 0 0
结果:0
再看负整数的,如 -5 & 2
- 同样先获取两个数字的二进制数据
负数的情况下需要先进行补码再进行运算,即先对-5转为二进制,再进行补码,先看如下步骤
-5 二进制数据
1 0 0 0 0 1 0 1
再进行补码 (补码就是在反码的基础上最后一位加1)
1 1 1 1 1 0 1 0
以上就是 -5 进行补码后的二进制数据,再进行最后一步,跟 2 的二进制数据进行与运算,即
1 1 1 1 1 0 1 0
0 0 0 0 0 0 1 0
-------------------------
0 0 0 0 0 0 1 0
结果:2
用场
比如判断一个数字是否是偶数,即 3 & 1 === 0 成立时,即 3 是偶数
手动进行 3 & 1 位运算看看得到什么吧?