- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章计算机中的数制和编码要点
3. 补码 设数x的补码记作[x]补,如机器字长为n,则补码定义如下: 正数的补码与其原码、反码相同。例如,当机器字长n=8时: [+8]补=[+8]反=[+8]原 [+127]补=[+127]反=[+127]原 当机器字长n=16时: [+8]补=[+8]反=[+8]原=0000000000001000B [+127]补=[+127]反=[+127]原=0000000001111111B (2.2.3) 负数的补码是在原码基础上,符号位不变(仍为1),数值位按位取反,末位加1;或在反码基础上末位加1。例如,当机器字长n=8时: [-8]原 [-127]原 [-8]反 [-127]反 [-8]补=28-8 [-127]补=28-127 可以看出,补码表示数的范围是?。8位二进制补码表示数的范围为-128?+127,16位二进制反码表示数的范围为-32768?+32767。8位二进制数的原码、反码和补码如表2.1所示。 表2.1 8位二进制数的原码、反码和补码表 2.2.3 真值与机器数之间的转换 1.原码转换为真值 根据原码定义,将原码数值位各位按权展开求和,由符号位决定数的正负即可由原码求出真值。 例2.8 已知[x]原,[y]原,求x和y x=+(0?26+0?25+1?24+1?23+1?22+1?21+1?20)=31 y=-(0?26+0?25+1?24+1?23+1?22+0?21+1?20)=-29 2. 反码转换为真值 要求反码的真值,只要先求出反码对应的原码,再按上述原码转换为真值的方法即可求出其真值。 正数的原码是反码本身。 负数的原码可在反码基础上,符号位仍为1不变,数值位按位取反。 例2.9 已知[x]反,[y]反,求x和y 解 [x]原= [x]反, x=+(0?26+0?25+0?24+1?23+1?22+1?21+1?20)=15 [y]原, y=-(0?26+0?25+1?24+1?23+0?22+1?21+0?20)= -26 3. 补码转换为真值 同理,要求补码的真值,也要先求出补码对应的原码。 正数的原码与补码相同。 负数的原码可在补码基础上再次求补,即: (2.2.4) 例2.10 已知[x]补,[y]补,求x和y 解 [x]原= [x]补, x=+(0?26+0?25+0?24+1?23+1?22+1?21+1?20)=15 [y]原=[[y]补]补, y=-(0?26+0?25+1?24+1?23+0?22+1?21+1?20)= -27 2.2.4 补码的加减运算 1. 补码加法 在计算机中,凡是带符号数一律用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。 补码加法的运算规则为: 即:两数补码的和等于两数和的补码。 (2.2.5) 例2.11 已知 [+51]补=0011 0011B,[+66]补=0100 0010B, [-51]补=1100 1101B, [-66]补=1011 1110B 求 [+66]补+[+51]补=?[+66]补+[-51]补=?[-66]补+[-51]补=? 解 二进制(补码)加法 十进制加法 ?0100 0010 [+ 66]补 + 66 +)0011 0011 [+ 51]补 +) + 51 ?0111 0101 [+117]补 ? +117 由于 [+66]补+[+51]补=[(+66)
文档评论(0)