计算机中为什么要使用补码

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

我们假设不使用补码在计算机的运算中会发生什么,以一个简单数学算式7-6=1来分析

1,使用原码

7 的二进制原码 :0 000 0111   其中最高一位表示符号位

-6的二进制原码 :1 000 0110

二者做相加运算

  0 000 0111

+1 000 0110

   1 000 1100

这个结果 符号位是1 表示是一个负数。明显结果有误

2,使用反码

7 的二进制反码:0 000 0111

-6的二进制反码   1 111 1001

二者做相加运算

  0 000 0111

+1 111 1001

1 0 000 0000

计算产生了进位,最高位溢出,舍弃。结果就是 0 000 0000.这个结果也是不合理。和十进制的运算结果不一致。

但是我们发现如果在这个结果上再加上1,就是我们想要的结果了。这个问题是不是具有一般性? 再随便举个例子8-5=3

8的原码:0 000 1000 ;8的反码: 0 111 0111

-5的原码   1 000 0101 ;-5的反码:1 111 1

计算机原码,反码,补码,以及之间的转换 ,计算机底层为什么要用二进制反码和二进制补码 首先我们需要知道: 计算机底层的存储方式:所有数字在计算机底层都以二进制形式存在。 二进制数据的存储方式:所有的数值,不管正负,底层都以补码的方式存储。 计算机原码:直接将一个数值转换为二进制,最高位是符号位。符号位正数为0,负数为1。 <font color=#0099ff size=7 face="黑体">color=#0099ff size=72 face="黑体"</font> <font color=#00ffff size=72>color=#00ff 阅读详情

相关推荐

计算机为什么需要补码?

在制造出晶体管后,然后利用晶体管制造出了与非门,然后又利用与非门制造出了加法器。加法器解决了加法运算问题。还需要解决减法的计算问题,但是与加法器相比,设计减法器硬件更为复杂,增加了计算的时间,能不能用加法器实现减法器的功能?这个实现的过程就用到了补码计算机为什么使用补码?采用补码可以简化计算机硬件电路设计的复杂度。 对于有符号数,内存要区分符号位和数值位,要是能把符号位和数值位等同起来,让它们一起参与运算,不再加以区分,只用加法器就可以同时实现加法和减法运算,这样硬件电路就变得简单了。 8 - 3

编程与实战的博客 4114

计算机为什么要用补码

目录 1. 补码诞生的背景 2. 原码、反码、补码 2.1 原码 2.2 反码 2.3 补码 3. 加减法 3.1普通算术加减法 3.2模N加减法 4. 总结 1. 补码诞生的背景 不论是在生活中还是虚拟网络中,人们总是习惯与10进制数字打交道,很容易理解10进制的加减乘除运算,但是我们知道计算机无法直接理解10进制,只能识别高低电平,一般人为设定0为低电平...

Turnhead的专栏 1万+

原码、反码、补码,你玩转了吗?

原码、反码、补码的由来;原码、反码和补码间的转换

m0_71273659的博客 965

计算机组成原理---为什么计算机中要使用补码

为什么补码: (1) 为什么计算机中要使用补码? 在计算机的8位二进制表示法中,有原码、反码、补码三种方法。最高位均表示符号位,0+1-。 1、原码 正数 0 XXXXXXX 负数 1 XXXXXXX 2、反码 正数 0 XXXXXXX(同原码) 负数 1 XXXXXXX(原码取反) 3、补码 正数 0 X

纸上得来终觉浅 绝知此事要躬行 2万+

计算机基础】计算机为什么使用补码

计算机为什么使用补码

lp15929801907的博客 4765

计算机-原码反码补码为什么补码

计算机系统中,数值的存储和运算依赖于原码、反码、补码三种二进制表示方法。它们的核心目标是解决符号位参与运算的问题,尤其是负数的加减法。

m0_73835569的博客 2926

为什么计算机使用反码/补码

一、为什么需要反码?反码的作用就相当于数学中的负数。对于小学生来说,会做的算术题是:5-3,但是不会做3-5。于是,我们上初中的时候,数学就引进了一个新的概念:负数。引入负数之后,本来是减法的运算就可以变成加法来实现:3-5=3+[-5]=[-2],中括号代表“负数”,“负数”就是我们人为给出的数学术语。对于计算机来说,会做的算术题是:5+3,但是不会做3-5。于是,我们就在编码引进了一个新的概念:反码。引入反码之后,本来是减法的运算就可以变成加法来实现:3-5=3+[-5]=[-2],中括号代表“反码

qq_39812608的博客 3644

计算机为什么要用补码

人类在制造出晶体管后,利用晶体管制造出了与非门,然后又利用与非门制造出了加法器。加法器解决了加法运算问题。只有加法器是不够的,还需要解决减法的计算问题,但是与加法器相比,设计减法器硬件更为复杂,增加了计算的时间,能不能用加法器实现减法器的功能?这个实现的过程就用到了补码计算机为什么使用补码?采用补码可以简化计算机硬件电路设计的复杂度。 对于有符号数,内存要区分符号位和数值位,要是能把符号位和数值位等同起来,让它们一起参与运算,不再加以区分,只用加法器就可以同时实现加法和减法运算,这样硬件电路就变得简单了

Neo 1万+

计算机为什么使用原码、反码、补码

1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 [+1] = [00000001]原 = [00000001]反 = [00000001]补 [-1] = [10000001]原 = [11111110]反 = [11111111]补 原码、反码、补码的计算方式如下: 原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。 反码:正数的反码...

ch717828的专栏 7468

为什么计算机当中要采用补码

为什么补码: (1) 为什么计算机中要使用补码? 在计算机的8位二进制表示法中,有原码、反码、补码三种方法。最高位均表示符号位,0+1-。 1、原码 正数 0 XXXXXXX 负数 1 XXXXXXX 2、反码 正数 0 XXXXXXX(同原码) 负数 1 XXXXXXX(原码取反) 3、补码 正数 0 XXXXXXX(同原码) 负数 1 XXXXXXX(原码取反+1) 1、由于原码和反码中,+0与-0的表示并不相同,所以计算机中一般使用补码。 2、其实还有一个更重要的作用,就是利用高位溢出,将减法运算变

vincent3678的博客 4512

为什么计算机使用补码?原码、反码、补码的关系

原码、反码、补码 机器数:一个数在计算机中的二进制表示形式。机器数是带符号的,最高位存放符号位, 正数为0, 负数为1。 真值:机器数对应的真正数值。比如 机器数1000 0001 的真值是-1 原码:原码就是符号位加上(真值的绝对值)。 [+1]= 0000 0001 [-1]= 1000 0001 反码:正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。 补码:正数的补码是其本身,负数的补码是其(反码+1)。 为什么计算机使用补码 计算机之所有...

BUG从入门到精通 940

为什么会出现补码计算机使用补码的原因

现在我们知道计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同: [+1] = [00000001]原= [00000001]反= [00000001]补 所以不需要过多解释. 但是对于负数: [-1] = [10000001]原= [11111110]反= [11111111]补 可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计...

疯狂的蜗牛 2276

(转载)计算机为什么要用补码

计算机为什么要用补码

帅不啦叽斯基的博客 4091

计算机为什么使用补码,原码、反码和补码为何物?

计算机为什么使用补码,原码、反码和补码为何物?1、为何产生这些疑问2、数学依据3、数学运算探索3、byte的取值范围4、原码、反码、补码的定义5、补码定义解疑6、总结 1、为何产生这些疑问 最近在研究字符集的相关内容,在Java中发现汉字在gbk和utf8的编码下的byte都存在负数的情况,一下子勾起了我的好奇心,查阅了各种资料寻求答案,最终把我的目光吸引到了计算机存储数据的底层实现上,原来计算...

qq_34814794的博客 2636

计算机补码为什么要用补码

计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值一并处理,不需要单独的处理符号位而降低复杂度,使得加法和减法也可以统一处理(为什么要用补码,好处是什么?)。 为了表示二进制数,如果直接用源码形式,需要额外的硬件(缺点)区分符号位0,1; 如果用反码,无需硬件分辨符号位,但是0由两种表达方式(缺点); 那么选用补码的话,0只有一种表达方式,而且比别的表达方式多...

andygaox1992的专栏 1637

为什么计算机中数据要以补码的形式存储呢

因为计算机中只有加法没有减法.为了更加低成本的计算出结果,所以使用补码来存储数据. 下面我们看一个例子 这个例子也是我看的时候特别能帮助我理解的 清晰明了,例如 : 3 - 2; 这个减法运算对于计算机而言它的理解是 3 + (-2) = 1 使用原码计算. 3的原码 00000000 00000000 00000000 0000...

砍柴喂马 5814
gloness
博客等级 码龄10年 1粉丝 1原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值