操作符 | 描述 | 例子 | 备注 |
& | 两个数字的二进制相对应位置全都为1,那么则为1,否则为0 | (60&13),得到12,既00001100 | 60的二进制为00111100 13的二进制为 00001101 |
| | 两个数字的二进制相对应位置全都为0,那么则为0,否则为1 | (60|13),得到61,既00111101 | |
^ | 两个数字的二进制相对应位置的值相同,那么则为0,否则为1 | (60^13),得到49,既00110001 | |
~ | 把这个二进制的数字本来为0的改为1,本来为1的改为0 | ~60得到-61,既11000011 | |
<< | 将数字转为二进制并且向左移动指定数字位数 | 60<<2得到240既11110000 | |
>> | 将数字转为二进制并且向右移动指定数字位数 | 60>>2得到15既00001111 | |
>>> | 将数字转为二进制并且向右移动指定数字位数,移动得到的空位以0补充 | 60>>>2得到15既00001111 | |
注意:因八位(8bit)是一个字节,所以所有的二进制不够八位的,应将高位数补充为0,例如60的二进制为111100则将其补充为00111100,同理如果是9位的二进制数字则需要用两个字节来处理,既在二进制数字前面补充7个0 |
Java位运算符&|^~<<,>>,>>>,的作用
最新推荐文章于 2023-03-20 11:54:57 发布