八位二进制补码最小值-八位二进制补码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

竭诚为您提供优质的服务,优质的文档,谢谢阅读/双击去除

八位二进制补码最小值:八位二进制补

好吧,小编虽然上个c++语言和Vb语言基础,虽然那个爱笑的从国外留学回来的老师讲课很好很精彩,但无奈小编跟不上呀。所以下面是小编给大家总结的八位二进制补码最小值和二进制补码知识点。

八位二进制补码最小值

8位二进制补码表示整数的最小值是-128,最大值是

+127.

原因:正数的补码就是其本身,8位二进制最大正整数是0111111,也就是十进制值127。

负数的补码是它原数的反码加1,最小值,就是负得最多的数,

即二进制10000000。十进制-128。

推导:-128=(-1)+(-127)=原码10000001+原码11111111=

补码11111111+补码10000001=补码10000000。

什么是二进制的补码?

注明:正数的补码与负数的补码一致,负数的补码符号位为1,这位1即是符号位也是数值位,然后加1

补码借鉴的模概念,虽然理解起来有点晦涩难懂。可以跳过

模的概念:把一个计量单位称之为模或模数。例如,时钟是以12进制进行计数循环的,即以12为模。

在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射为+2。由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。10和2对

模12而言互为补数。同理,计算机的运算部件与寄存器都有一定字长的限制(假设字长为16),因此它的运算也是一种模运算。当计数器计满16位也就是65536个数后会产生溢出,又从头开始计数。产生溢出的量就是计数器的模,显然,16位二进制数,它的模数为2^16=65536。在计算中,两个互补的数称为“补码”。比如一个有符号8位的数可以表示256个数据,最大数是01111111(+127),最小数10000000(-128);那么第255个数据,加2和减254都是一样的效果得出的结果是第一个数据,所以2和254是一样的效果。对于255来说2和254是互补的数。

求一个正数对应补码是一种数值的转换方法,要分二步完成:

第一步,每一个二进制位都取相反值,即取得反码;0变成1,1变成0。比如,00001000的反码就是11110111。

第二步,将上一步得到的反码加1。11110111就变成11111000。所以,00001000的二进制补码就是11111000。

也就是说,-8在计算机(8位机)中就是用11111000表示。

不知道你怎么看,反正我觉得很奇怪,为什么要采用这么麻烦的方式表示负数,更直觉的方式难道不好吗?

二进制补码的好处

首先,要明确一点。计算机内部用什么方式表示负数,其实是无所谓的。只要能够保持一一对应的关系,就可以用任意方式表示负数。所以,既然可以任意选择,那么理应选择一种用的爽直观方便的方式。

二进制的补码就是最方便的方式。它的便利体现在,所有的加法运算可以使用同一种电路完成。

还是以-8作为例子。假定有两种表示方法。一种是直觉表示法,即10001000;另一种是2的补码表示法,即11111000。

请问哪一种表示法在加法运算中更方便?随便写一个计算式,16+(-8)=?16的二进制表示是00010000,所以用直觉表示法,加法就要写成:

00010000

+10001000原码形式-8

---------

10011000

可以看到,如果按照正常的加法规则,就会得到10011000的结果,转成十进制就是-24。显然,这是错误的

答案。也就是说,在这种情况下,正常的加法规则不适用于正数与负数的加法,因此必须制定两套运算规则,一套用于正数加正数,还有一套用于正数加负数。从电路上说,就是

必须为加法运算做两种电路。所以用原码表示负数是不行的。

现在,再来看二进制的补码表示法。

00010000

+11111000补码形式-8

---------

100001000

可以看到,按照正常的加法规则,得到的结果是100001000。注意,这是一个9位的二进制数。我们已经假

定这是一台8位机,因此最高的第9位是一个溢出位,会被自动舍去。所以,结果就变成了00001000,转成十进制正好

是8,也就是16+(-8)的正确答案。这说明了,2的补码表示法可以将加法运算规则,扩展到整个整数集,从而用一套电路就可以实现全部整数的加法。(特别说明,有部分素材来自博主jQ_AK47)

最后,小编希望文章对您有所帮助,如果有不周到的地方请多谅解,更多相关的文章正在创作中,希望您定期关注。谢谢支持!

相关文档
最新文档