一、Java中所支持的位运算符一共有7个
符号 | 说明 |
---|---|
& |
按位与。当两位同时为1时才返回1。 |
| |
按位或。只要有一位为1即可返回1。 |
~ |
按位非(取反)。单目运算符,将操作数的每个位(包括符号位)全部取反。 |
^ |
“异或”运算。当两位相同时返回0,不同时返回1。 |
<< |
左移运算符。 |
>> |
右移运算符。 |
>>> |
无符号右移运算符。 |
(上面所说的两位相同,指的是参与运算的两位整数的补码,也就是存储在计算机中的形式)
二、原码、反码、补码。
原码
就是将数字转换成二进制。
反码
就是将原码的每位取反(如果是0,那就变成1。如果是1,那就变成0。符号位不变)。
补码
就是在反码的基础上+1。
原码其实就是为了方便人类去看,补码是数字在计算机中存在的形态。
所以上面我们所说的运算符其实都是对数字的补码进行运算。