首页 生活指南 正文内容

什么是补码(什么是补码和原码)

阿立指南 生活指南 2022-11-05 16:11:09 432 0

计算机中什么叫补码啊``` 怎么算的?

补码,在计算机中,有所应用。

但是,补码的来源,是由算法导出的,和计算机无关。

 

比如,一个小孩,很小的。

他只认识 100 个数,也不会做减法。

那么,减一,就可以告诉他,用加 99 代替:

36 - 1 =  35

36 + 99 = (1) 35

忽略进位,结果不是一样的吗?

99,就是-1 的补数。

算法: 补数=模+负数。

其中的“模”,是计数系统中,数字个数的总数。

 

补码,也就是二进制的补数。

八位二进制,共有 256 个数字,模,就是 256。

255(1111 1111),就是-1 的补码;

254(1111 1110),就是-2 的补码;

... ...

128(1000 0000),就是-128 的补码。

算法:

补码=256 +负数。

正数,直接参加运算即可,用不着转换。

什么是补码(什么是补码和原码) 第1张

什么叫做补码?

补码,应该是最容易理解的知识了。

小学生都可以自己摸索出来。

按照四位二进制来说,共有 16 组代码。

数字 0 的二进制,就是 0000,

数字 1 的二进制,就是 0001,

。。。

数字 7 的二进制,就是 0111。

可见下表:

零和正数的补码

负数怎么办?

就从 0000,依次向下减,就行了。那么:

数字-1 的二进制,就是 0000-1 = (1) 1111 = 15(十进制)。

(括号中的 1,是借位,舍弃不要了。)

数字-2 的二进制,就是 1111-1 = 1110 = 14。

数字-3 的二进制,就是 1110-1 = 1101 = 13。

。。。

数字-8 的二进制,就是 1000 = 8(十进制)。

(别再减了。再减,就是 0111 = +7 了。)

可见下表:

负数的补码

综合到一起,就是-8~+7 的四位补码。见下表:

四位补码

总结:

 零和正数的补码,就是数字本身(也可转为二进制)。

 负数的补码,就是: 16+这个负数。

 (如果是 8 位二进制,就改用: 256 + 这个负数。)

--------

整个推算过程,并不需要使用“原码反码符号位”这些垃圾。

计算时,使用十进制,简单方便。得出的补码,当然也是十进制。

如果需要二进制,就变换一下。

补码,很难吗?

如果不涉及原码反码符号位,就一点也不难。

-----------

补码有什么用呢?

 利用补码,可以把减法运算,转换成加法。

 (所以,在计算机中,有一个加法器,就够用了。)

例如:6-2 = 4,用补码运算如下:

 6 的补码是 0110、-2 的补码是 1110。

 0110 + 1110 = (1) 0100 (= 4 的补码)

 (括号中的 1,是进位,舍弃不要了。)

注意:

 如果运算结果超出了-8~+7 的范围,结果将是错的。

 这种现象称为“溢出”。

 再注意一下:进位,并不等于溢出。

---------

因为补码的这个特性,所以,在计算机中,只是使用补码存放数据。

而原码反码,在计算机中,都是不存在的。

原码反码 的用途,只是用于“笔算”。

其实,笔算的方法,并非只有“取反加一”。

原码反码,只是砖家为了增加收入,瞎编的垃圾而已。

所以,大家,完全不必在原码反码 上浪费时间精力。

但是,考试怎么办?

呃 ...,千万别跟老师较劲,他怎么讲,你就怎么答吧。

什么是补码

正负数字,存放在计算机中,就称为:补码。

正数,就直接以二进制存放。

负数,则需要变换一下,再存放。

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

如果,仅使用两位十进制数,就是 00~99,共有 100 个数字。

减一,就可以用 +99 代替:

28 - 1 = 27

28 + 99 = (1) 27

忽略进位,结果就是相同的。

于是,99,就是-1 的补数;

同理,98,就是-1 的补数;

利用【补数】,就可把“相减”运算,改为“相加”。

利用【补数】,就可把“负数”改为“正数”。

对于“-1”,其对应的【补数】就是:100-1 = 99。

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

计算机中,没有数字。1 和 0,都是代码。

八位二进制代码,称为一个字节。

0000 0000~1111 1111,共有 256 个代码。

-1,就可以用 256- 1 = 255 (=1111 1111) 代替,

-2,就可以用 256- 2 = 254 (=1111 1110) 代替,

那么,1111 1111 就称为-1 的补码;

同理,1111 1110 也就是-2 的补码。

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

计算机中,只有加法器,没有减法器。

做减法运算,必须使用【补码】,用加法来操作。

补码的定义式,如下:

正数的补码,就是该数字本身。

负数的补码,就用“模”,加上该负数,即可。

求补码,并不需要“原码反码符号位 ”这些垃圾知识。

补码是什么请回答好吗

补码,就是二进制的补数。

什么是补数? 通过常识,就可以理解了。

时钟,倒拨 3 小时,可用 正拨 9 小时 代替。

两位十进制数:00~99,共有 100 个。

那么,减一,可用 +99 代替。

24-1 = 23

24 + 99 = (1) 23

忽略进位,只取低两位,结果就是一样的。

那么,-1 的补数,就是 99。

同理,-2 的补数,就是 98。

。。。

利用补数,就可以把减法转化为加法运算。

--------

计算机用二进制,“补数”就改称为“补码”了。

八位二进制数:0000 0000~1111 1111,共有 256 个。

那么,减一,可用加 1111 1111 代替。

因此,-1 的补码,就是 1111 1111 = 255(十进制)。

同理,-2 的补码,就是 1111 1110 = 254(十进制)。

。。。

最后,-128 的补码,就是 1000 0000 = 128(十进制)。

--------

求负数的补码,公式就是:2 的 N 次方+该负数。

可以用十进制来计算,不用写成二进制。

补码是什么意思?

1

补码

注意:此处的'=='是相等的意思。'='是赋值的意思。

在机器世界里:

正数的最高位是符号位0,负数的最高位是符号位1。

对于正数:反码==补码==原码。

对于负数:反码==除符号位以外的各位取反。

补码==反码+1.

原码==补码-1后的反码==补码的反码+1。(读完本文后,应该能够直观地认识到本式的正确性)

可以轻易发现如下规律:

自然计算 :a-b==c.

计算机计算:a-b==a+b的补码==d.

c的补码是d.

通过此法,可以把减法运算转换为加法运算。

所以补码的设计目的是:

1.使符号位能与有效值部分一起参加运算,从而简化运算规则.

2.减运算转换为加运算,进一步简化计算机中运算器的线路设计.

欢迎 发表评论:

文章目录
    搜索