JAVA byte十六进制存储

JAVA byte十六进制存储
a0如何变为-96 互转机制
byte是一个字节保存的,有8个位,即8个0、1。
8位的第一个位是符号位,
也就是说0000 0001代表的是数字1
1000 0000代表的就是-1
所以正数最大位0111 1111,也就是数字127
负数最大为1111 1111,也就是数字-128
一个数如果是正,则它的反码与原码相同;
一个数如果是负,则符号位为1,其余各位是对原码取反;
负数补码为反码+1,正数与补码一致
A0二进制位1010 0000,反码1101 1111,补码1110 0000
-110 0000转10进制为-96
14二进制位0001 0100,反码0001 0100,补码0001 0100转10进制为20

public class test {

    public static void main(String args[]) { 

    byte a=(byte) 0xA0;
    short b=(short)( a & 0x0FF);
    short c=(short)( 0xA0);
    int d=a;
    System.out.println(a);//16进制转2进制补码后显示
    System.out.println(b);//直接16进制转10进制
    System.out.println(c);
    System.out.println(d);
    System.out.println("-----------");
    byte[] bArray={-124};
    bytesToHexString(bArray);
    }
}    

补码计算器http://www.99cankao.com/numbers/twos-complement.php
http://blog.163.com/pilgrim_yang/blog/static/55631481201111542151582/
http://blog.csdn.net/sunyujia/article/details/2385727

你可能感兴趣的:(JAVA基础)