5 关于System.out.println();
  byte b = (byte)0xf8;
  System.out.println(b);   --终输出为-8
  运算步骤为:
  b 转化为int  1111 1000 转化为   11111111 11111111 11111111 11111000
  取符号位 -                      -1111111 11111111 11111111 11111000
  取返+1(因为是按补码运算)      -0000000 00000000 00000000 00001000
  输出  -8
  终结论:
  1 区分使用 >> 和 >>>
  2 在 >> 操作前要首先 & 0xff
  3 注意符号优先级,正确使用括号。
  4 需要强烈注意的一点是 & 的优先级小于 + . 因此 a = b & 0xff + 2000 的结果 可能不是你想要的
  附:
  打印byte,int 每个bit值的函数。

 

public static void printByte(byte b){
for(int i = 7; i >=0 ; i --){
int shiftleft = (b >> i) & 0x01;
System.out.print(shiftleft);
}
System.out.println();
}
public static void printInt(int b){
for(int i = 31; i >=0 ; i --){
int shiftleft = (b >> i) & 0x01;
System.out.print(shiftleft);
}
System.out.println();
}