补码

计算机的世界,是0和1的世界,计算机做的所有计算,都是多个0和1的迭加。而这个多个,具体是多少个,要看我们的计算机是多少"位"的,比如我们常用的笔记本电脑,经常会区分32位,64位,这个位的区分,其实和CPU有关系。

CPU

简单来说cpu有两个作用,一个是把指令分发给出去给不同的硬件,二是计算数据。cpu是有很多引脚的,这些引脚被分为好多组,有的组用来传输控制信号,有的用来传输地址信号,
有的用来传输数据, 相应的,硬件也必须提供引脚与这些组的引脚对接,是的,为了响应cpu的号令,硬件通过主板的线路将自己引脚和cpu的引脚联通,我们把这些线路称为总线BUS,就像上文说的那样,
bus大致被分为三类:

  • 数据总线 data bus
  • 地址总线 address bus
  • 控制总线 control bus

由于咱们是介绍补码,所以只看一下数据总线是咋回事儿就可以了,有兴趣的可以去读一下原文,引用:计算机原理简略总结(一)

数据总线

测试由于每一根数据线可以理解为一个管脚,一次只能传输一个二进制,所以数据总线的宽度(也就是根数)决定一次传输的数据量,我们平时说的32位,16位都是说的数据总线的宽度,这些管脚传过去的一组电信号就是数据,这些数据传过去放在哪里了呢? 内存?不是的,这些数据总线与cpu直接连接,而不是跟内存连接的,所有数据过去的时候会放在cpu的一个暂时存放数据的地方,叫数据寄存器。你会问了,寄存器是个什么东东?你可以把他理解为或大或小的一块内存,实际上他的存取速度是远大于内存的,数据总线是双向的因为cpu和硬件之间可以相互传输数据,硬件也是有寄存器的奥。


也就是说,比如我们表示一个16位的数值,比如0000000000000001,其实是一组16根数据线同时传输,15个低电位,1个高电位,来表示这个数字。

什么是补码?

你知道吗?计算机的世界里,是没有减法的,加法是加法算,减法还是用减法算,既然都要用加法算,那么就需要用到补码来完成计算。
那么什么是补码呢?
我们知道,减一个数相当于加一个数的负数,所以我们最终要解决的是,如何表示一个负数。然后去相加。
计算机是这么解决的。一串二进制的数字,前导位为0表示正数,前导位为1表示负数,这种常用的表示有符号二进制树的方法称为二进制补码,例如:
补码

补码的计算规则?

补码的计算规则是这样的,一个正数的原码,补码,就是它自己,一个负数原码是它自己,负数的补码,是这个负数的每一位取反,0变成1,1变成0,然后给结果+1,这种计算方式的原理是这样的
一个数和它按位取反的结果相加,和一定是-1,也就是说,一个负数的原码+该负数的补码+1=0。

posted @ 2021-07-23 14:48  lgeger  阅读(340)  评论(0)    收藏  举报