原码、反码、补码和字节
1.
8个二进制位是一个字节
Byte是一个字节
int类型是4个字节
Long类型是8个字节
当Long类型强制转换为int类型时是截取高位,保留低位
2.
先看有几个字节
128 计算机中的二进制表示
原码:0000 0000 0000 0000 0000 0000 1000 0000
截取低位一个字节后:1000 0000
最高位为符号位,1表示负数
计算机中用补码表示有符号数
正数的补码就是自身
2.1
原码反码补码
原码:为二进制的数, 如:10 原码0000 1010
反码:正数与原码相同, 如:10 反码0000 1010
负数为原码0变1,1变0,(符号位不变)如:-10 原码1000 1010
反码1111 0101
补码:正数的补码与原码相同,如:10 补码:0000 1010
负数的补码是反码加1 如:-10 反码:1111 0101
补码:1111 0110
计算机中数字以补码储存,因为原码和反码计算不准确,而补码是准确的。
现在已知补码是1000 0000,求原始数
补码:1000 0000
反码:1111 1111
原码:1000 0000, 计算机中指定它为-128