##一、简介
Java中有三种移位运算符:
运算符 | 解释 |
---|---|
<< | 左移运算符,移动一位乘以一个2 |
>> | 右移运算符,移动一位除以一个2 |
>>> | 无符号右移,忽略符号位,空位用0补齐 |
##二、关于原码、反码、补码
Java里的byte占一个字节,一个字节8个位,8个位里的第一位是符号位,第一个符号位表示正负数。
Java里的int占四个字节,共32位,32个位里的第一位是符号位没,表示正负数。
int data = 20;
//前面省略了27个0,高位若无1,即可把0省略缩写
[+20] = 原码[10100]=反码[10100]=补码[10100]
[-20 ] = 原码[10000000000000000000000000010100] = 反码[11111111111111111111111111101011] = 补码[11111111111111111111111111101100]
1)原码就是在原数值前面加一符号位, 即用第一位表示符号, 其余位表示值。
2)反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上