- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 二 章 习 题 答 案
9 .在32 位计算机中运行一个C 语言程序,在该程序中出现了以下变量的初值,请写出它们对应的机器
数(用十六进制表示)。
(1)int x=-32768 (2 )short y=522 (3 )unsigned z=65530
(4 )char c=’@’ (5 )float a=-1.1 (6 )double b=10.5
本题要点:
(1) 数据要根据其类型要表示到足够的位数,如题(3 ),要写成0000FFFA ,而不是FFFA
(2) 因为求机器数,所以负数要用补码表示
(3) 浮点数要用IEEE 754 标准编码,要注意是float 还是double ,分别编码:阶码位数、尾数位数、
偏置常数各不相同。要表示到足够的位数。
(4) 16 进制数后面要写H 标识,二进制数后面要写B 标识
参考答案:
(1)FFFF8000H
解:-215=-1000 0000 0000 0000B,负数符号位为1,int 型整数表示为32 位,
故机器数为1…1 1000 0000 0000 0000=FFFF8000H
(2 )020AH
解:522=10 0000 1010B ,正数符号位为0,short 型整数表示为16 位,
故机器数为0000 0010 0000 1010=020AH
(3 )0000FFFAH
解:65530=216-1-5=1111 1111 1111 1010B,unsigned 型整数表示为32 位,无符号位(高位补0 ),
故机器数为0000FFFAH
(4 )40H
解:’@’的ASCII 码是40H ,char 型表示为8 位
(5 )BF8CCCCCH
解:-1.1=-1.00011 [0011]…B=-1.000 1100 1100 1100 1100 1100B,
float 型浮点数,阶码为127+0 (8 位),整数部1 为隐藏位,负数符号位为1,
故机器数为1000 1100 1100 1100 1100 1100=BF8CCCCCH
(6 00000000H
解:10.5=1010.1B=1.0101B23 (左规),
Double 型浮点数,阶码为1023+3=100 0000 0010,整数部1 为隐藏位,正数符号位为0,
故机器数为0 100 0000 0010 0101 [0000]00000000H
10. 在32 位计算机中运行一个C 语言程序,在该程序中出现了一些变量,已知这些变量在某一时刻的机
器数(用十六进制表示)如下,请写出它们对应的真值。
(1)int x :FFFF0006H (2 )short y:DFFCH (3 )unsigned z :FFFFFFFAH
(4 )char c :2AH 5 )float a :C4480000H (6 )double b:C024800000000000H
本题要点
(1) 正确换算,结果最好表示成10 进制
(2 ) 注意数据类型,准确区分有符号数和无符号数,有符号数最高位为1 时为负数
(3 ) 正确解析浮点数
参考答案:
(1)-65530
解:FFFF0006H=1 …1 0000 0000 0000 0110B ,最高位为1,所以为负数,int 型整数,所以真值
为其余为取反加1,故x= -1111 1111 1111 1010B= - (65535-5)=-65530
(2 )-8196
解:DFFCH= 1101 1111 1111 1100B=-010 0000 0000 0100B,最高位为1,所以为负数,short 型整
数,所以真值为其余为取反加1,故y=- (8192+4)=-8196
(3
文档评论(0)