⑴ 正数和负数在内存中是以什么形式存储的,都是补码 为什么呢
正数和负数在内存中是以什么形式存储的,都是补码? 为什么呢?
----------------------
为什么采用补码?
最终目的,就是为了“简化硬件”。
其实,补码,还是很好理解的。
但是,从“原码反码取反加一”开始学,就理解不了了。
----------------------
计算机,每次进行计算,位数,是固定的。
八位的计算机,参加计算的,就只有八位二进制数。
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、补码的正零与负零表示方法相同。
人活一辈子,就活一颗心,心好了,一切就都好了,心强大了,一切问题,都不是问题。
人的心,虽然只有拳头般大小,当它强大的时候,其力量是无穷无尽的,可以战胜一切,当它脆弱的时候,特别容易受伤,容易多愁善感。
心,是我游闷培们的根,是我们的本,我们要努力修炼自己的心,让它变得越来越强大,因为只有内心强大,方可治愈一切。
没有强大的敌人,只有不够强大的自己
人生,是一场自己和自己的较量,说到底,是自己与心的较量。如果你能够打开自己的内心,积极乐观的去生活,你会发现,生活并没有想象的那么糟糕。
面对不容易的生活,我们要不断强大自己的内心,没人扶的时候,一定要靠自己站稳了,只要你站稳了,生活就无法将你撂倒。
人活着要明白,这个世界,没有强大的敌人,只有不够强大的自己,如果你对罩嫌现在的生活不满意,千万别抱怨,努力强大自己的内心,才是我们唯一的出路。
只要你内心足够强大,人生就没有过不去的坎
人生路上,坎坎坷坷,磕磕绊绊,如果你内心不够强大,那这些坎坎坷坷,磕磕绊绊,都会成为你人生路上,一道道过不去的坎,你会走得异常艰难。
人生的坎,不好过,特别是心坎,最难过,过了这道坎,还有下道坎,过了这一关,还有下一关。面对这些关关坎坎,我们必须勇敢往前走,即使心里感到害怕,也要硬着头皮往前冲。
人生没有过不去的坎,只要你勇敢,只要内心足够强大,一切都会过去的,不信,你回过头来看看,你已经跨过了多少坎坷,闯过了多少关。
内心强大,是治愈一切的良方
面对生活的不如意,面对情感的波折,面对工神唯作上的糟心,你是否心烦意乱?是否焦躁不安?如果是,请一定要强大自己的内心,因为内心强大,是治愈一切的良方。
当你的内心,变得足够强大,一切困难,皆可战胜,一切问题,皆可解决。心强则胜,心弱则败,很多时候,打败我们的,不是生活的不如意,也不是情感的波折,更不是工作上的糟心,而是我们内心的脆弱。
真的,我从来不怕现实太残酷,就怕自己不够勇敢,我从来不怕生活太苦太难,就怕自己不够坚强。我相信,只要我们的内心,变得足够强大,人生就没有那么多鸡毛蒜皮。
强大自己的内心,我们才能越活越好
生活的美好,在于追求美好的生活,而美好的生活,源于一颗强大的内心,因为只有内心强大的人,才能消化掉各种不顺心,各种不如意,将阴霾驱散,让美好留在心中。
心中有美好,生活才美好,心中有阳光,人生才芬芳。一颗阴暗的心,托不起一张灿烂的脸,一颗强大的心,可以美化生活,精彩人生,让我们越活越好。
生活有点欺软怕硬,如果你内心很脆弱,生活就会打压你,甚至折磨你,如果你内心足够强大,生活就会奖励你,眷顾你,全世界都会对你和颜悦色。