计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么

计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么最近在学习一下专栏里面的数学问题 提到二进制的东西的时候 想到了大多数人在学习的时候 死记硬背上反码是怎样 补码是怎样

大家好,欢迎来到IT知识分享网。

目录

1、前言,自己发明javb语言

2、模

3、先思考,为什么不能直接用源码计算

4、主角的由来

5、反应肯定是???


最近在学习一下专栏里面的数学问题,提到二进制的东西的时候,想到了大多数人在学习的时候,死记硬背上反码是怎样,补码是怎样。

现在回头问下自己,反码有何存在意义?补码有何存在意义?为什么要有反码?为什么要有补码?

1、前言,自己发明javb语言

因为位数太长,所以以下说明的时候不太方便,假如我现在发明了了,jbvb语言,接下来整篇分析里面,

2、模

那这里的模是2^4 = 16 

7 + 1 = 0111 + 0001 = 1000 = -8 ,上溢出,超越上限,也就是最大值+1后 会变成最小值。

还剩15的差值,-8 + 8 能回到0位置, 0+7 能回到7的位置。也就是说 7 + 模后,重新回到原来的位置。

就是余数和取模的概念,这东西周而复始,其实跟时钟类似。

类似时钟机制,假如现在是6点,顺时针加12个小时,这样就回到了6点。

3、先思考,为什么不能直接用源码计算

计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么

4、主角的由来

由前面可知,数值加上模后会回到原来的位置。

由此将i-j + 模的值等同于 i – j ,   i-j=(i-j)+(2^n-1+1)=i+(2^n-1-j+1)

2^n-1-j ,结果如下图,

这个东西刚好是-1,除符号位外的取反。称为反码

计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么

2^n-1-j+1,补码,反码加1 

计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么

所以-1最终的补码与1相加 ,得到正确的值

计算机基础(一)——为什么要有反码和补码,反码和补码的意义是什么

5、反应肯定是???

这里的计算算的刚好,这里我看其他人也有相同的迷惑。

作者的解答是:我们只考虑(n-1)位的1,不考虑第一位

现在想必大家都理解了。如果强制加上符号位,那么和j的值是对应不上长度的。所以把第一位去除直接计算。

这个公式刚好就这么巧解释了整个补码的由来。
 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/101898.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信