JAVA程序里,支持位运算。已知位运算有7种, —— 请看如下图。
<< 左移运算 :
左移运算,往左移多少位,就是乘以2的移动的位数次幂 (值越来越大)
移动后的补位,按最高位来补,假设最高位是0,则按0来补位
示例:20<<2
>>右移运算:
右移运算,往右移多少位,就是除以2的移动的位数次幂 (值越来越小)
移动后的补位,按最高位来补,假设最高位是1,则按1来补位
示例:20>>2
右移运算,往右移多少位,就是除以2的移动的位数次幂 (值越来越小)
移动后的补位,无论最高位是什么都拿0补位
示例请参考右移运算,唯一的不同制式补位是用0,其余一致,此处不再敖述。
-----------------------------------------------------------------------------------------------------------------------------------
& 与运算:
与运算,就是2个数相比较,首先将2个数转换成二进制形式。
如果2个数的二进制对应位都为1,结果为true,其余为false 。
注意:如果2个相比较的数都是一样的,结果还是原来得数。
示例:6 & 3
| 或运算:
或运算,就是2个数相比较,将2个数转换成二进制形式。
如果2个数的二进制对应位其中一位为1,结果为true,否则为false 。
示例: 6 | 3
^ 异或运算:
异或运算,就是2个数相比较,将2个数转换成二进制形式。
如果2个数的二进制对应位都为0或1,结果为false,其余为true 。
示例:6 ^ 3
~ 反码:
反码运算,就是将数转换成二进制形式,然后将0变成1,1变成0
注意:一个整数经过反码后+1,将可以得到自身的负数形式。
示例: ~6