- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四讲-计算机科学中的
* * * 已知补码求真值的方法 n位补码 最高位为0 (正数或0) 最高位为1 (负数) 真值=机器数 二进制运算: 真值=机器数求补; 添上负号 十进制运算: 真值=机器数?2n 例2-6 求8位补码 ABH 表示的十进制真值。 解: 方法一:补码求补 (ABH)8位补=(1010 1011B)8位补 =(?0101 0101B)真值 = (?55H)真值= (?85)真值 方法二:机器数?2n (ABH)8位补=(171)8位补=(171?256)真值=(?85)真值 符号扩展 短的补码可以转换为长的补码,转换时,短的补码最高位被复制到长的补码高位,称为符号扩展。 例如:8位补码5AH用16位补码表示,应为:005AH 8位补码A5H用16位补码表示,应为:FFA5H n位补码表示的真值范围 n位补码共有n个二进制位,每个位有1和0两种状态,n位组合共有2n个状态,因此最多可以表示2n个整数。 当它用于表示无符号整数时,十进制数值范围为0 ~ 2n?1;当它表示有符号整数时,十进制数值范围是 ?2n?1 ~ 2n?1 ?1。 ?例2-7 写出8位补码的表示范围。 解:8位补码的全部非负数的机器数范围是: 0000 0000B ~ 0111 1111B, 对应十进制数的范围为:0 ~127; 全部负数的机器数范围是: 1000 0000B ~ 1111 1111B, 对应十进制数的范围为:?128 ~ ?1 2.5 实数的存储格式 2.5.1 IEEE单精度浮点数格式 实数的存储一般采用浮点(float)格式。程序设计语言(C/C++、Java、Basic、Pascal)都采用IEEE(Institute of Electrical and Electronics Engineers)浮点格式。该浮点格式有单、双两种精度。首先介绍单精度浮点格式。 IEEE单精度浮点格式采用32bits(4字节)机器数来表示。32bits中包括1个符号位,8位阶码(binary exponential)和23位尾数(mantissa),如下图所示。 最高位 3130 23 22 0 sign exponetial mantissa byte 3 byte 2 byte 1 byte 0 存储顺序 符号位(Sign Bit): 0表示正数;1表示负数。 阶码(Binary Exponetial): 阶码减去127(127称为幂次的基)得该二进制数以2为底的幂次。 尾数(Matissa): 二进制有效数字。一般规格化为整数部分为1(即二进制的第一位有效数字),而尾数只记录小数部分。 对于规格化的尾数,它的最高位隐含着一个整数部分的1,因此规格化尾数表示的十进制数范围应该是区间 [ 1.0 , 2.0 )。 单精度规格化浮点数表示的十进制真值为: 真值= (符号?1.二十三位尾数?2阶码?127)2 例2-7 已知单精度浮点数的机器数为BED00000H,求它表示的十进制数真值。 解:BED00000H=1011 1110 1101 0000 0000 0000 0000 0000B 阶码 因此,符号 = ?1 阶码 = 0111 1101B=7DH=125 尾数 = 101B 真值= ?1?1.101?2125?127= (?1.101?2?2)2= (?0.01101)2 = ? 0.40625 例2-8 将十进制数3000化为规格化单精度浮点数,写出机器数及其在内存中的字节单元存储顺序。 解:3000=BB8H=1011 1011 1000B =(1.01110111000?211)2 因此,符号位=0 B
文档评论(0)