导航:首页 > 用户投稿>内容

在计算机中表示数时,为什么要引入补码?

发布时间:2023-11-25 14:55:40 来源:我身边电商百科网  点击:
TAG: 在计算机中表示数时 为什么要引入补码

在计算机中表示数时,为什么要引入补码?

只是为了:简化硬件,节省资金。

因为负数可以用正数代替(补数)。

如:24-1=23

24 99=(一百)23

忽略进位,用99代替-1。

99是-1的补数。计算机使用二进制,称为:补码。

用补数(正数)代替负数,那么电脑里就没有负数了。

因此,在计算机中,只有加法。

所以,在计算机中,你只需要设置一个加法器,就可以进行加减运算。

为何要用补码?

在计算机系统中,数据总是用补码来表示和存储。

原因是有了补码,加减就可以统一了。

补码就是补码,与原码的补码无关。

你可以 不理解 为什么要用补语? 。

补语实际上是a 正数代替负数运算。quot。

例如,十进制运算:

24 – 1=23

24 99=(一百)23

弃进位,99可以代替-1。

这时候减法就转化为加法了。

那么,99叫做-1的补数。

丢弃进位是一个2位数的十进制计数周期:10 ^ 2=100。

大家可以推导出求补数的公式:负周期。

其实在三角函数中,大家都知道:

-/2和3/2,这两个角的作用相同。

负角和正角怎么换?

还用到公式:正角=负角周期(2)。

计算机用二进制,补码,所以叫:补码。

8位二进制的计数范围是:0000 0000 ~ 1111 1111。

转换成十进制,即:0 ~ 255。

计数周期为2 ^ 8=256。

那么-1的补码就是255(也就是1111 1111)。

-2的补码是:-2 256=254=1111 1110。

-128的补码是:128=1000 0000。

这是可以用八位二进制表示的128个负数。

求补数的公式还是:负句号。

正数可以直接运算,不需要变换。

所以正数根本没有补数。

要找到补码,你不要 不需要联系 原始代码的符号位被反转并加 。

那些乱七八糟的东西没必要。

外国人不擅长数学,所以他们别无选择,只能做这些 道路封锁 诡计。

为什么计算机存储的是补码?

在计算机系统中,数值总是用补码来表示和存储。

8位二进制代码,有2 ^ 8=256种组合。

如果设计合理,它们可以代表256个数。

但是原码和反码都是有缺陷的,一个0占了两个码位。

所以原码的8位反码只能代表255个数:-127 ~ 127。

(在计算机中,不使用原码和反码的缺点也是原因之一。)

补码的设计方案很完善,数字和代码一一对应。

因此,8位补码可以表示256个正数和负数。

其范围为:-128 ~-1,0~ 127。

因此,在计算机系统中,数值总是用补码来表示和存储。

原码和反码都不存在电脑里。

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

【toc】开门见山,我觉得最重要的原因有两个:之前网上搜到的大部分原因都解释了第一点,解释有说服力。所以我 我先在这里说第二点,规则是一致的,这是我看了《深入理解计算机系统》公开课后学到的。

哔哩哔哩对计算机系统公开课深有体会(带中文字幕,强烈推荐)。对了,研究这类问题的时候,可以想清楚,而不是用一个大数。

假设我们有一台只有4位的计算机来计算乘法-2 * -3的值。如果用原码或反码计算,注意乘法的计算规则是:直接截断保留最低4位,保留后最高位为符号位。-2 ;s补码:1110转换为无符号数(十进制):14-3 ;s补码:1101转换为无符号数(十进制):13无符号数14 * 13=182转换为二进制且只保留最少4位:0110(0110的十进制为6,等于正确答案)-2。

制) : 10 -3 的原码: 1011 转换成无符号数(十进制) : 11 无符号数 10 * 11 = 110 将110 转换成 二进制 并且只保留最低 4 位: 1110 (1110的十进制是 -6 或者 14,均不等于正确答案 6) 如果你觉得这是个巧合,那么可以自己试几个数算一下,或者用反码也算一下,看看是什么结果。 可以简化硬件的计算,因为硬件就是单纯的电路板,它可不知道什么符号位,它能做的就是把接收到的两个值做运算。

如果计算机使用原码,那么是不是cpu需要准备两套运算电路,运算前还要做个 if else 判断?一套给有符号数用,一套给无符号数用。这样子会造成极大的资源浪费。 但是 如果我们使用补码,就可以让硬件无脑的计算再截断好了,反正最后的值不论是 有符号 还是 无符号, 都能得到正确的答案 。

由于讲这个的太多了,这里就简单说一下(不写反码了,直接用补码举例)。 用整数 1 来做个实验, 1 的原码是 0001,补码是 0001。 -1的原码是1001,补码是 1111。

如果你让 1 和 -1 的原码相加,那么他们很明显不得 0, 但是补码相加溢出再截断,最后等于0 。 至于为什么会这样?因为补码的定义就是这样啊 用我自己的话总结:补码就等于现有的位再加一位,新加的位等于1,其余都为0 。减去当前的原码,就成了补码。

用例子来说就是 10000 (总共5位) 减去 1 的原码 0001, 就等于 1 的补码 1111 。 10000 – 00001 = 1111 用 -1 举例 , -1 的补码 1111 这四位不是对应着 8 4 2 1 嘛,那么直接把 最高位 的值 乘以 -1, 其他位都是正值,加起来就行了。

计算机为什么采用补码的形式存储数据

补码,其实就是一个“代替负数”的正数。
使用了补码之后,在计算机内部,就没有负数了,
从而,也就没有减法运算了。

因此,利用补码,就可以简化计算机的硬件。

而原码和反码,都没有这种功能。
所以,在计算机中,原码反码,都是不存在的。
-----------
补码(一个正数),怎么就能代替负数呢?
你看,2 位 10 进制数的运算:
25 - 1 = 24
25 + 99 = (一百) 24
舍弃进位,只取 2 位数,结果,是不是相同的?
99,就称为-1 的补数。
98,就是-2 的补数。

补数,是怎么算出来的?
公式,你都可以自己推导:
补数(正数)=负数+周期(10^2)。
正数,本身就是正数了,不需要作任何变换。
所以,正数,并没有补码。

------------
计算机的运算,位数,也是限定的。
8 位机,每次运算,就是 8 位 2 进制。
那么,-1 的补码,就是:
-1 + 2^8 = 255 = 1111 1111 (二进制)。

如 25 -1 = 24,用补码计算如下:
25 = 0001 1001
[-1]补码 = 1111 1111
--相加---------
得: (1) 0001 1000 = 24
舍弃进位,保留八位的结果,这就是 24。

-------------------------
补码的来源,与原码和反码,毫无关系。
所以,学习原码和反码取反加一符号位不变,都是做无用功。
老外数学不好,才会用使用这些骚操作。

上一篇:她是处女 为什么那么容易进去 下一篇:10年前网吧最火的游戏,只有一款坚持到最后,老玩家都泪目了!

与在计算机中表示数时,为什么要引入补码?相关的文章

热点内容
国内最顶级养老院究竟什么样... 浏览:477
东北曾经的工业有多辉煌?为何如今却... 浏览:1026
我手机游戏怎么玩不了?... 浏览:1845
十年前借给亲戚三万,他只还三万没利... 浏览:598
雷诺车质量到底怎么样?... 浏览:1154
为什么送围巾是永别... 浏览:198
莲雾是何等水果,为何那么贵... 浏览:534
学游戏设计哪个大学好... 浏览:561
适合创业的互联网平台有哪些?... 浏览:1844
自行车总是掉链子是怎么回事?... 浏览:208
煮完紫薯的水,为什么是绿色的?... 浏览:455
人力资源外包公司排名前十是那几家... 浏览:936
李宁跑鞋排行榜前十名... 浏览:1120
《武林外传》莫小贝为什么成为赤焰... 浏览:297
为什么柠檬泡水是苦的... 浏览:883
总是梦到10年前住的老房子,这是为什... 浏览:1549
有没有东北的,对棚是什么意思,为什么... 浏览:448
仓储公司排名前十... 浏览:1594
人为什么要抽烟啊?... 浏览:1116
未婚女性为何也会感染尿道炎求答案... 浏览:694