java高位转地位原理探索
/**
* @author: hellkity
* @date: Created in 2020/6/7
* 类说明: 数据范围大小转换原理
*/
public class NumberCast {
public static void main(String[] args) {
/**
* 说明 int 转 byte 截取低8位
* 0x90 1001 0000
* 二进制求真值 ; 对二进制取补码 , 正数补码 为原码, 负数 补码为 最高符号位不变, 其余去反,最后+1
* 1001 0000 补码 1110 1111 + 1 = - 112
*/
int a = 0x90;// 128 , 255
byte b = (byte) a;
System.out.println(Integer.toBinaryString(a));
System.out.println(Integer.toBinaryString(b));
System.out.println(b);
/**
* 结果:
* 10010000
* 11111111111111111111111110010000
* -112
*/
}
}