与(&)运算:
eg: x&y
先将x、y转为二进制数,然后对x 、y的每一位数值进行比较,只有数值都为1时才取1,否则为0.
14&15
//结果 1110 ,十进制是14
或(|)运算:
eg: x|y
先将x、y转为二进制数,然后对x 、y的每一位数值进行比较,只有数值都为0时才取0,否则为1.
14|15
//结果 1111 ,十进制是15
异或(^)运算:
eg: x^y
先将x、y转为二进制数,然后对x 、y的每一位数值进行比较,只有数值不相等时才取1,相等时为0.
14^15
//结果 0001 ,十进制是1
按位取反(~)运算:
~1 //结果 -2
~-3 //结果 2
计算规则:先+1,再取相反数
计算过程如下:
- 将1(原码)转为二进制:0000 0001
- 按位取反: 1111 1110
- 符号位(最高位)为1(1表示负数-x) ,将除符号位之外的数字取反 :1000 0001
- 末位+1求补码:1000 0010
- 将补码转为十进制:-2
左移:
2<<1 //4
2的二进制:10,左移一位100,转为十进制是4
右移:
2>>1 //1
2的二进制:10,右移一位1,转为十进制是1