百摩网
当前位置: 首页 生活百科

计算机所有数字都是补码(计算机为何采用补码的形式来表示负数)

时间:2023-05-31 作者: 小编 阅读量: 2 栏目名: 生活百科

首先我们知道,一个数在计算机中有正负之分,这个数的最高位(符号位)用来表示它的正负,其中0表示正数,1表示负数。因为“0”有两个编码形式,所以等于浪费了一个编码。即对于4位的二进制,使用原码或反码表示的范围为[-7,7],而使用补码表示的范围为[-8,7]。

从上文:计算机的原码、反码和补码可知,计算机有三种编码方式来表示同一个数:

  • 原码:符号位加上真值的绝对值,第一位表示符号,其余位表示值。
  • 反码:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余位取反。
  • 补码:正数的补码还是其本身;负数的补码是在其原码的基础上,符号位保持不变,其余位取反,最后 1。即反码加1。

对于 1和-1,

[ 1] = [0001]原 = [0001]反 = [0001]补

[-1] = [1001]原 = [1110]反 = [1111]补

为什么计算机采用补码的形式来表示负数呢?

首先我们知道,一个数在计算机中有正负之分,这个数的最高位(符号位)用来表示它的正负,其中0表示正数,1表示负数。

对于计算机来说,加法是最基础的运算,要设计的尽量简单。

根据加法的运算法则,a-b等于a (-b)。

如果能将符号位也参与到运算中,而非单独“辨识符号位”,就可以大大简化计算机的基础电路。

于是,人们开始探索只保留加法,并将符号位参与到运算中的方法。

1、原码:1 - 1 = 0

首先来看原码:1 - 1 = 0

1 - 1 = 1(-1)

= [0001]原[1001]原

= [1002]原

= -2

这显然是错误的。

2、反码:1 - 1 = 0

对于反码:

1 - 1 = 1(-1)

= [0001]反[1110]反

= [1111]反

= [1000]原

= -0

用反码进行计算,发现结果是对的。但有一个问题是“0”的表示有两个:

  • -0([1000])
  • 0([0000])

而0带符号是没有意义的。

且采用补码形式,对于4位的二进制,其表达的范围为:[1000]反~[0111]反,即[1111]原~[0111]原,也即[-7,7]。

因为“0”有两个编码形式,所以等于浪费了一个编码。

3、补码:1 - 1 = 0

而补码解决了反码的问题:

1 - 1 = 1(-1)

= [0001]补[1111]补

= [0000]补

= [0000]原

= 0

使用补码, 不仅仅解决了0的符号以及存在两个编码的问题,而且还能够用[1000]来表示-8,即多表示一个最低数。

即对于4位的二进制,使用原码或反码表示的范围为[-7, 7],而使用补码表示的范围为[-8,7]。

因为计算机采用补码来表示负数,所以对于编程中常用到的32位int类型,可以表示范围是:[-2^31,2^31-1] 。

相关阅读

C语言的数据类型介绍

    推荐阅读
  • 难忘的小学生活(怎么写难忘的小学生活作文范文)

    难忘的小学生活题目:《难忘的小学生活》。

  • 漫威钢铁侠的三大克星(科普漫威钢铁侠的最强武器)

    很多人认为天神组装甲是背锅侠的最强装甲,甚至还有人说天神组装甲有多元宇宙级,甚至全能宇宙级,真的正确吗?而天神组直接被秒杀可见不可能达到多元级。天神组装甲之所以被吹得这么厉害主要是应为这句话“他接通了整个现实的力量”然而历史总是告诉我们设定并无卵用,例如哨兵百万太阳之力常态连架飞机都抬不起来。。

  • 欧洲卡车2修改器怎么用(欧洲卡车模拟2内置修改器)

    欧洲卡车模拟2中文版官方介绍欧洲卡车模拟2让您有机会从舒适的家中成为真正的卡车司机!http://mac.orsoon.com/Mac/153276.html欧洲卡车模拟2Mac中文版游戏特点欧洲著名的卡车品牌欧洲卡车模拟器2具有7个持牌卡车品牌,共有13个独特的卡车车型,每个车辆已经从制造商获得许可,并重新细节,让您感觉驾驶真正的卡车。大风景在游戏世界跨越16个欧洲国家,具有重新创造的环境,道路,城市和地标。可能的组合之和使得每个人都可以恨据自己的喜好来定制卡车。

  • 双春年多少年一遇(俗语一年两个春)

    俗语一年两个春摘要:俗语“一年两个春,带毛的贵如金”啥意思?20年是“双春年”吗?文/农夫也疯狂现在的年轻人喜欢宅在家里,但是农村的老人们却在家里待不住,总是喜欢找村里的老伙计一起说说话今天听村里的老人们聊天,他们。

  • 创意手工废物利用做袋子(手工DIY-利用垃圾袋和A4纸制作环保古装)

    下面的发簪那些黑珠子都是捡来的还是美美的黄桑到了娘娘到了手工,只有亲手去做了,才会知道其中的乐趣与困难,收集再多的教程比不上真正去动手做一次的收获来得多,来,欢迎入坑↖(^ω^)↗来看,就做赞是一种鼓励|分享传递友谊,

  • 唠叨是什么意思(唠叨解释)

    以下内容希望对你有帮助!唠叨是什么意思唠叨,汉语词汇,拼音:láodao,指说话写文章啰嗦、不简洁多指人说话重复或围绕一个道理说差不多的话。

  • 为什么比特币要开采(比特币是什么挖矿又是什么)

    据剑桥大学替代金融研究中心统计显示,2017年挖矿年耗电量为6.6太瓦时,2018年增长到48.37太瓦时,而2020年前10个月,耗电量上升至67太瓦时。2021年5月17日,该机构推测全球当年的“挖矿”耗电量大约为134.89太瓦时。2021年4月,我国出台政策严厉打击挖矿行为,希望更多国家能出台类似政策,让宝贵的能源都能用到对人类未来有益的项目,而不是浪费在类似比特币这种虚拟货币中。

  • 结冰猪肉如何解冻(解冻猪肉时用热水就错了)

    咱们解冻猪肉的时候要准备一个大铁盆,然后加入适量的凉水,先将它浸泡5分钟,这样可以将猪肉表面的一层肉解冻掉。让食盐与猪肉接触得更加充分也可以融入到猪肉中。食盐具有杀菌消毒的作用,还能够促进猪肉吸收水分,从而加速猪肉解冻的速度。5分钟的时间到了之后咱们将猪肉捞出来看一下,这会就差不多已经可以将猪肉拉开了,咱们将猪肉拿到案板上将其对半切开。

  • sunflowers什么意思中文(sunflower是向日葵wallflower是壁花)

    sunflower是向日葵wallflower是壁花最近这段时间正是赏花的好时节,百花盛开、花香四溢,度过了冰雪寒冬,迎来温暖美丽的春季,一片万物复苏的景象实在动人街道两旁已经绿意盎然,公路边的各式野花也在春风中摇曳生姿北京赏花的地儿实在太多,先不说各。

  • 橡胶发黄是什么原因(橡胶发黄的原因)

    橡胶发黄是什么原因橡胶结构本身的影响,橡胶大分子链键之间存在键能,当提供的能量大于键能时,则分子链容易产生活性集中,会使橡胶在使用和贮存的过程中产生逐步的降解导致黄变。热量、氧分子的影响,应用材料会随着时间的长久发生氧化反应,热量会加速材料的氧化过程。其它因素的影响,变黄还与应用材料中添加的助剂、存在的水分、杂质以及加工生产工艺有关。原因比较复杂,需要针对性进行分析排查。