首页 > 技术文章 > 原码、反码、补码、移码

roud 2021-10-02 11:16 原文

1. 原码、反码、补码、移码

原码:最高位为符号位(0表示正,1表示负),其余为为其真值的绝对值

如8的原码为 00001000,-8的原码为10001000

正数的反码、补码与其原码相同

反码:负数的反码为其原码的基础上除符号位外其余取反(1取反为0,0取反为1)

如-8的反码为11110111

补码:负数的补码为其反码的基础上末位+1

如11110111末位+1后为11111110

无论正负,其移码都为其补码的基础上符号位取反

2.java中的数据是以补码的形式存储

如题:

byte b=(byte)129;
System.out.println(b);
//控制台输出结果:    -127
//过程如下:
//129的补码为       010000001
//从低位开始取8位得   10000001
//减1得              10000000
//取反码为           11111111即-127

推荐阅读