Java 原码、反码、补码 详解

1. 机器数

一个数在计算机中的二进制表现形式,叫做这个数的机器数。一个数的最高位表示符号,0是正数,1是负数。

2. 真值

因为机器数是带符号的,所以机器数不能表示一个数的真正的值。比如-1的机器数是:1000 0001,但是1000 0001转成10进制是81。-1的真值是:-0000 0001,机器数是把符号用0和1来表示。

3. 原码

原码就是符号位加上真值的绝对值。比如:8 原码是 0000 1000。-8 原码是 1000 1000。

4. 反码

正数的反码,就是其本身。而负数的反码,保持最高的符号位不变,其余位置取反。比如 8 反码和原码相同都是:0000 1000。而-8的反码则是:1111 0111。由此可以看出,一个负数的反码,是看不出它的数值的,只能转回原码才能计算出。

5. 补码

正数的补码,依旧是其本身。而负数的补码,是在原码基础上,符号位不变,其余位置取反再+1。比如:-8 原码:1000 1000,取反:1111 0111。再加1得到补码:1111 1000。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容