计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作
运算符 | 描述 | 运算结果 |
---|---|---|
& | 与 | 两者都为一时,结果才为一 |
| | 或 | 两者都为零时,结果才为零 |
^ | 易或 | 两者相同为零,相异为一 |
~ | 取反 | 零变一,一变零 |
<< | 左移 | 各二进位全部左移若干位,高位丢弃,低位补0 |
>> | 右移 | 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移) |
例:
A = 0101 0011
B = 0011 1100
-------------------
A&B = 0001 0000
A|B = 0100 0000
A^B = 0110 1111
~A = 1010 1100
~b = 1100 0011
2^4 = 16
2 << 3 // 16 2的二进制位数 0000 0010 左移三位 等于 0001 0000
4 >> 2 // 1 4的二进制位数 0000 0100 右移二位 等于 0000 0001
标签:右移,0000,运算,0011,二进制位,了解,1100,Java
From: https://www.cnblogs.com/Ellieee/p/18232849