移动字节值

  • 本文关键字:字节 移动 java byte
  • 更新时间 :
  • 英文 :


我有以下java程序:

public class java {

    public static void main(String[] args) {
        byte a=64, b;
        int i;
        i=a<<2;
        b=(byte)(a<<2);
        System.out.println(i);
        System.out.println(b);
    }
}
在这个程序中,为什么b的值是 0 ?

因为byte正好是8位。int的最后8位是0。如果我们加上Integer.toBinaryString(int)的结果,

byte a = 64;
int i = a << 2;
System.out.println(Integer.toBinaryString(i));
byte b = (byte) (a << 2);

你会看到输出是

100000000

所以b(因为1是第9位)变成

00000000

最新更新