以下是两段c语言代码函数arith,计算机系统基础第二章习题参考 答案-2018.pdf

计算机系统基础第二章习题参考 答案-2018.pdf

第 二 章 习 题 答 案

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.0101B23 (左规),

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

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值