java 位运算
1 2 3 4 5 6 7 | 要将十进制的-10用二进制表示,先将10用二进制表示: 0000 0000 0000 1010 取反: 1111 1111 1111 0101 加1: 1111 1111 1111 0110 所以,-10的二进制表示就是:1111 1111 1111 0110 |
1 2 3 4 5 6 | 将10与-10进行按位与(&)运算: 0000 0000 0000 1010 1111 1111 1111 0110 ----------------------- 0000 0000 0000 0010 所以:10 & -10 = 0000 0000 0000 0010 |
1 2 3 4 5 6 | 将10与-10进行按位或(|)运算: 0000 0000 0000 1010 1111 1111 1111 0110 ----------------------- 1111 1111 1111 1110 所以:10 | -10 = 1111 1111 1111 1110 |
1 2 3 4 5 6 | 将10与-10进行按位异或(^)运算: 0000 0000 0000 1010 1111 1111 1111 0110 ----------------------- 1111 1111 1111 1100 所以:10 ^ -10 = 1111 1111 1111 1100 |
1 2 3 | a = a ^ b; b = b ^ a; a = a ^ b; |
1 2 3 4 5 | 对10进行取反(~)运算: 0000 0000 0000 1010 --------------------- 1111 1111 1111 0101 所以:~10 = 1111 1111 1111 0101 |
1 2 3 4 5 | 对10左移2位(就相当于在右边加2个0): 0000 0000 0000 1010 -------------------- 0000 0000 0010 1000 所以:10 << 2 = 0000 0000 0010 1000 = 40 |
1 2 3 4 5 | 对10右移2位(就相当于在左边加2个0): 0000 0000 0000 1010 -------------------- 0000 0000 0000 0010 所以:10 >> 2 = 0000 0000 0000 0010 = 2 |
若转载请注明出处!若有疑问,请回复交流!