码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-02-06 16:38:31      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:log   col   body   使用   bsp   div   理解   style   补码   

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

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

 

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

标签:log   col   body   使用   bsp   div   理解   style   补码   

原文地址:https://www.cnblogs.com/zhaoletian/p/8422582.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!