1.原码、反码、补码
计算机中计算使用的是补码,正数的补码、原码、反码一致,负数的反码(补码基础上-1)、原码在反码基础上取反。
2.左移、右移
int 1<<2 (1向左移动两位,即1乘以2的2次方)
int 1<<3 (1向左移动三位,即1乘以2的3次方)
int 4>>2((4向右移动两位,即8除以2的2次方))
int 8>>2((8向右移动三位,即8除以2的3次方))
注:左移后面补0,右移前面补符号位
3.例子
short、int、long等类型转byte数组进行右移
short i=1; 二进制:00000000 00000001
00000001 & 0xff 为 byte[0]=1 右移动0位
00000000 & 0xff 为 byte[1]=0 右移动8位
byte数组为byte[2] j ={1,0}
注:负数的补码减1取反得原码,取反加1也得原码