Java中byte和int的转换

Java中的int 4字节和byte 1字节,都是有符号的。
如果这样转换

byte b = (byte) 0X80;   //二进制 1000 0000
int i = b; /i=-128

b对应的二进制1000 0000 作为有符号数的-128
将b赋值给i ,是把值传递过去了

byte b = (byte) 0X80;
int i = b ;
System.out.println(Integer.toBinaryString(i));
//11111111111111111111111110000000

如果想取出byte中的二进制,作为int的低八位,可以这样做

    public static void main(String[] args) {
        byte b = (byte) 0X80;// 1000 0000
        int i = b & 0xff;
        System.out.println(i);//128
        System.out.println(Integer.toBinaryString(i));//0000 0000 1000 0000
    }

你可能感兴趣的:(java,开发语言)