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