当前位置:首页 » 服务存储 » 计算机内存储数据为补码
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

计算机内存储数据为补码

发布时间: 2023-08-07 15:23:54

⑴ 正数和负数在内存中是以什么形式存储的,都是补码 为什么呢

正数和负数在内存中是以什么形式存储的,都是补码? 为什么呢?

----------------------

为什么采用补码?

最终目的,就是为了“简化硬件”。

其实,补码,还是很好理解的。

但是,从“原码反码取反加一”开始学,就理解不了了。

----------------------

计算机,每次进行计算,位数,是固定的。

八位的计算机,参加计算的,就只有八位二进制数。

16 位机、32 位机、64 位机 ...,也都是雷同的。

那么:

数值 0,八位机存放的是:0000 0000,这没有疑问吧?

数值 +1,就是 0+1。即:0000 0001,你可以理解吧?

数值-1,那显然就是 0-1 了。

你用二进制算算看,差,是多少?

忽略借位,八位的差,就是:1111 1111 (十进制 255)。

255,这就是被称为:-1 的补码。

数值-X,怎么存放?

那就按照 0-X 算呗!肯定可以得出这种正数的结果。

负数(-X) 的补码,一定是个正数。

---------------------

补码,是一个“代替负数计算”的正数。

这说法,对吗?

你可以验算一下。

比如,等式:1-1 = 0,显然是成立的。

转换为补码:[+1]补 + [-1]补 = [0]补,也必须成立。

代入数值,计算如下:

0000 0001+1111 1111 = (1) 0000 0000

你舍弃了进位,这等式就成立了。

这说明:

用补码(正数),就可以代替负数。

同时,加法,也就代替了减法运算。

但是,进位,必须舍弃。

另外,正数和令,就不存在转换成补码的问题了。

当然,也可以说,正数,本身就是补码。

采用了补码之后,就能简化算法,由此也就可以简化硬件。

---------------------

常见的问题:为什么数据在内存里是以补码的形式存储?

正确答案是:简化算法,从而简化硬件。

这也就是:补码存在的意义。

补码的理论,就是这么简单。

老外算术不行,二进制运算,弄不利索。

这才编造了“原码反码取反加一符号位不变”。

而计算机中,根本就不用原码和反码。

我们的计算机老师脑子不好用,被老外骗得滴溜滴溜转。

跟着老外绕了老大一圈,也讲不明白“补码的存在意义”。

学生学完了,也不知道:为什么数据在内存里是以补码的形式存储?

------------------------

如果已知计算机的二进制数,怎么求它代表的数值呢?

数值,小学学过为两类:自然数、整数。

自然数,即 0 ~ ∞,在计算机中,称为:无符号数。

整数,包括“正整数负整数和零”,称为:带符号数。

计算机中的 n 位二进制数,每一位,都对应一个十进制数。

如果 n = 8,每一位对应的十进制数则是:

128、64、32、16、8、4、2、1。

注意:其中的最高位,对于“带符号数”来说,则是-128

-------------

例如,一个八位的补码是:1000 1011。

如果是“带符号数”,其首位,就是-128

其余的位,都是正数。

那么,各位之和,就是:128 + 8 + 2 + 1 = 117。

如果是“无符号数”,其首位,就是 128。

各位之和,就是:128 + 8 + 2 + 1 = 139。

--------------

例如,另一个八位的补码是:0000 1011。

首位是 0?这就不用关心有无符号了。

其代表的数值,就是:8 + 2 + 1 = 11。

⑵ 计算机用的是补码还是原码

八位二进制正数的补码范围是0000 0000 ~ 0111 1111 即0 ~ 127,负数的补码范围是正数的原码0000 0000 ~ 0111 1111 取反加一(也可以理解为负数1000 0000 ~ 1111 1111化为反码末尾再加一)。

所以得到 1 0000 0000 ~ 1000 0001,1000 0001作为补码,其原码是1111 1111(-127),依次往前推,可得到-1的补码为1111 1111,那么补码0000 0000的原码是1000 0000符号位同时也可以看做数字位即表示-128,这也解释了为什么127(0111 1111)+1(0000 0001)=-128(1000 0000)。

在计算机中数据用补码表示,利用补码统一了符号位与数值位的运算,同时解决了+0、-0问题,将空出的二进制原码1000 0000表示为-128,这也符合身逻辑意义的完整性。因此八位二进制数表示范围为-128~+127。

拓展资料:

补码的特性:

1、一个负整数(或原码)与其补数(或补码)相加,和为模。

2、对一个整数的补码再求补码,等于该整数身。

3、补码的正零与负零表示方法相同。
人活一辈子,就活一颗心,心好了,一切就都好了,心强大了,一切问题,都不是问题。

人的心,虽然只有拳头般大小,当它强大的时候,其力量是无穷无尽的,可以战胜一切,当它脆弱的时候,特别容易受伤,容易多愁善感。

心,是我游闷培们的根,是我们的本,我们要努力修炼自己的心,让它变得越来越强大,因为只有内心强大,方可治愈一切。

没有强大的敌人,只有不够强大的自己

人生,是一场自己和自己的较量,说到底,是自己与心的较量。如果你能够打开自己的内心,积极乐观的去生活,你会发现,生活并没有想象的那么糟糕。

面对不容易的生活,我们要不断强大自己的内心,没人扶的时候,一定要靠自己站稳了,只要你站稳了,生活就无法将你撂倒。

人活着要明白,这个世界,没有强大的敌人,只有不够强大的自己,如果你对罩嫌现在的生活不满意,千万别抱怨,努力强大自己的内心,才是我们唯一的出路。

只要你内心足够强大,人生就没有过不去的坎

人生路上,坎坎坷坷,磕磕绊绊,如果你内心不够强大,那这些坎坎坷坷,磕磕绊绊,都会成为你人生路上,一道道过不去的坎,你会走得异常艰难。

人生的坎,不好过,特别是心坎,最难过,过了这道坎,还有下道坎,过了这一关,还有下一关。面对这些关关坎坎,我们必须勇敢往前走,即使心里感到害怕,也要硬着头皮往前冲。

人生没有过不去的坎,只要你勇敢,只要内心足够强大,一切都会过去的,不信,你回过头来看看,你已经跨过了多少坎坷,闯过了多少关。

内心强大,是治愈一切的良方

面对生活的不如意,面对情感的波折,面对工神唯作上的糟心,你是否心烦意乱?是否焦躁不安?如果是,请一定要强大自己的内心,因为内心强大,是治愈一切的良方。

当你的内心,变得足够强大,一切困难,皆可战胜,一切问题,皆可解决。心强则胜,心弱则败,很多时候,打败我们的,不是生活的不如意,也不是情感的波折,更不是工作上的糟心,而是我们内心的脆弱。

真的,我从来不怕现实太残酷,就怕自己不够勇敢,我从来不怕生活太苦太难,就怕自己不够坚强。我相信,只要我们的内心,变得足够强大,人生就没有那么多鸡毛蒜皮。

强大自己的内心,我们才能越活越好

生活的美好,在于追求美好的生活,而美好的生活,源于一颗强大的内心,因为只有内心强大的人,才能消化掉各种不顺心,各种不如意,将阴霾驱散,让美好留在心中。

心中有美好,生活才美好,心中有阳光,人生才芬芳。一颗阴暗的心,托不起一张灿烂的脸,一颗强大的心,可以美化生活,精彩人生,让我们越活越好。

生活有点欺软怕硬,如果你内心很脆弱,生活就会打压你,甚至折磨你,如果你内心足够强大,生活就会奖励你,眷顾你,全世界都会对你和颜悦色。