为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

补码的表示

2019-04-21 5页 doc 17KB 12阅读

用户头像

is_591137

暂无简介

举报
补码的表示补码表示由于原码表示中0的表示形式的不唯一和原码加减运算的不方便,造成实现原码加减运算的硬件比较复杂.为了简化运算让符号位也作为数值的一部分参加运算,并使所有的加减运算均以加法运算来代替实现,人们提出了补码表示方法.1.模的概念补码表示的引入是基于模的概念.所谓"模"是指一个计数器的容量,比如钟表以12为一个计数循环,既可以看做以12为模.在进行钟表对时时,设当前钟表的时针停在9点钟位置,要将时针拔到4点钟.可以采用两种方法:一是反时针方向拔动指针,使时针后退5个小时,即9-5=4;另一种是顺时针方向拔动指针,使时针前进7个小...
补码的表示
补码表示由于原码表示中0的表示形式的不唯一和原码加减运算的不方便,造成实现原码加减运算的硬件比较复杂.为了简化运算让符号位也作为数值的一部分参加运算,并使所有的加减运算均以加法运算来代替实现,人们提出了补码表示.1.模的概念补码表示的引入是基于模的概念.所谓"模"是指一个计数器的容量,比如钟表以12为一个计数循环,既可以看做以12为模.在进行钟表对时时,设当前钟表的时针停在9点钟位置,要将时针拔到4点钟.可以采用两种方法:一是反时针方向拔动指针,使时针后退5个小时,即9-5=4;另一种是顺时针方向拔动指针,使时针前进7个小时,也能够使时针指向4.这是因为表钟的时间只有1,2,.....,12这12个刻度,时针指向超过12时,将又指向1,2,........,相当于每超过12,就把12丢掉.由于9+7=16,超过了12,因此把12减掉后得到4,即用9+7也同样能够将表钟对准到4点钟.这样,对于采用12为模的钟表而言,9-5≡9+7(mod12),称为在模12的条件下,9-5等于9+7.这里,7称为-5对12的补数,既7=[-5]补=12+(-5)(mod12).这个列子说明,对某一个确定的模而言,当需要减去一个数X时,可以用加上X对应的负数-X的补数[-X]补来代替.对于任意X,在模M的条件下的补数[X]补,可由下式给出:[X]补=M+X(modM)根据公式:1.当X>=0时,M+X大于M,把M丢掉,得[X]补=X,既正数的补数等于其本身.2.当X<0时,[X]补=M+X=M-|X|,既负数的补数等于模与该数绝对值之差.例:求模M=2时,二进制数X的补数(1)X=+0.10110101(2)X=-0.10110101解:(1)因为X>=0,把模2丢掉,所以[X]补=2+X=0.10110101(mod2)(2)因为X<0,所以[X]补=2+X=2-|X|=10.00000000-.010110101=1.01001011(mod2)2.补码的定义在计算机中,由于硬件的运算部件与寄存器都有一定的字长限制,既计算机硬件能够一次处理的二进制数据的长度是有限的,因此计算机中的运算也是有模运算.例如一个位数为8的二进制计数器,计数范围为0000,当计数满到11111111时,再加1,计数值将达到100000000,产生溢出,最高位的1被丢掉,使得计数器又从00000000开始计数.对于这个8位二进制计数器而言,产生溢出的量100000000就是计数器的模,相当于前述钟表中的12.由于计算机中的数据均采用二进制编码表示,因此通常将某数对模的补数称为补码.对于数值部分的位数为N的二进制数据X,下列式字给出了X为纯小数±0.x1x2...xn和X为纯整数±X1X2....XN时的补码的表示定义.纯小数补码的定义:X0≤X<1[X]补=(mod2)2+X-1≤X<0纯整数补码的定义:X0≤X<2^N[X]补=(mod2^(n+1))2^(N+1)+X-2^N≤X<0根据式子可以知道:X的补码[X]补是一个N+1位的机器数X0X1X2.....XN,其中X0是符号位,X1X2....XN为数部分,N为X数值位的长度,并且纯小数补码表示的模M=2;纯整数补码表示的模M=2^(N+1).例:已知X,求X的补码[X]补.1.X=+0.10101102.X=-0.10101103.X=+10101104.X=-1010110解:通过定义可以知道:1.[X]补=X=0.10101102.[X]补=2+X=10.0000000+(-0.1010110)=1.01010103.[X]补=X=10101104.[X]补=2^7+X=10000000+(-1010110)=10101010//更正为[X]补=2^8+X=100000000+(-1010110)=10101010可得:X0是符号位,X>=0,X0=0;X<0,X0=1.3.特殊数的补码表示(1)真值0的补码表示真值0的补码表示是唯一的:[+0]补=[-0]补=2±0.00....0=0.00...00(纯小数)[+0]补=[-0]补=2^(N+1)±0.00....0=0.00...00(纯整数)(2)-1和-2^N的补码表示在纯小数补码表示中,[-1]补=2+(-1)=10.00....0+(-1.00...0)=1.000在纯小数的原码表示中,[-1]原是不能表示的;而在补码表示中,纯小数的补码最小可以表示到-1,这时在[-1]补中,符号位的1既表示符号"-",又表示数值1.在纯整数表示中有:[-2^N]补=2^(N+1)+(-2^N)=1000...0(N+1个0)+(-100..0)(N个0)=100..0(N个0)同样,在纯整数的原码表示中,[-2^N]原是不能表示的;而在补码表示中,在模为2^(N+1)的条件下.纯整数的补码最小可以表示到-2^N.这时,符号位的1既表示符号"-",也表示数值2.4.补码的简求法给一个X,若:(1)X>=0;则[X]补=X,并使其符号位为0.
/
本文档为【补码的表示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索