浅谈计算机中的二进制补码

Posted zhaoletian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈计算机中的二进制补码相关的知识,希望对你有一定的参考价值。

   对于一个整数,计算机里面是以补码的形式存储的,我们如果想要理解补码,需要先理解原码和反码。

1)原码

  正整数的原码就是它的二进制形式

  10的原码: 0000 1010

  负整数的原码,使用最高位为1 表示符号为负数

  -10 的原码 1000 1010

2)反码

  正整数的反码与原码一样

    10的反码: 0000 1010

   负整数的反码。符号位不变,其余按位取反(0变1. 1变0)

    -10 的反码 1111 0101

3)补码

  `正整数的补码与原码一样

  10的补码: 0000 1010

  负整数的补码是它的反码加1

  -10的补码: 1111 0110

对于整数10来说。如果采用1个字节保存它。在计算机中存储的01序列为: 0000 1010

对于整数-10来说,如果采用1个字节保存它,在计算机中存储的01序列为: 1111 0110

使用补码进行运算时准确的,使用原码和反码不准确

(类似小学加法,满2进1)

  使用原码计算10-10的结果

    10的原码:   0000 1010

    -10的原码:    1000 1010

结果                  1001 0100     =-20

  使用反码计算10-10的结果

    10的反码   0000 1010

    -10的反码  1111  0101

结果       1111 1111(反码) ---      10000 0000(原码) == -0    负整数的反码。符号位不变,其余按位取反(0变1. 1变0)

  使用补码计算10-10的结果

    10的补码:  0000 1010

    -10 的补码:  1111  0110

结果        1 0000  0000

  使用一个字节保存: 最高位1就没地方保存,舍弃,只剩下 0000 0000

  如果使用两个字节存储 还会产生最高位1存储不下,因此补码计算的结果是准确的

(补充)一个字节最大的整数 0111 1111      127

    一个字节最小的负数 1000 0000     -128

 

以上是关于浅谈计算机中的二进制补码的主要内容,如果未能解决你的问题,请参考以下文章

原码反码补码

二进制原码反码补码简介

如何理解补码

一个数的原码,反码,补码怎么算

计算机中的原码,反码,补码,以及他们在内存中的存储形式。

二进制的原码反码补码及相关计算