第3章 作业评讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
2009年研究生入学考试试题 12. 一个C语言程序程序在一台32位机器上运 行。程序中定义了三个变量x,y,和z,其中x和 z为int型,y为short型。当x=127,y= -9时, 执行赋值语句z=x+y后,x、y和z的值分别是 A. x=0000007FH, y=FFF9H, z=00000076H B. x=0000007FH, y=FFF9H, z=FFFF0076H C. x=0000007FH, y=FFF7H, z=FFFF0076H D. x=0000007FH, y=FFF7H, z=00000076H
7
2
第三章作业讲评 2.定点机器数的表示
表示方法不规范。譬如:写出X=-0.1101的原码、 反码和补码: • 正确写法:【X】原=1.1101, 【X】反=1.0010, 【X】补=1.0011, • 错误写法: 【1.1101 】原= 【 1.0010 】反= 【 1.0011 】补
3.浮点数的表示
1
第三章作业讲评
2.定点机器数
机器数的正数和负数的表示方法不一样,不能按照负 数的方法来表示正数,尤其反码和补码。 机器数的表示有位数要求: •如果机器数为8位,则符号位1位,数值位为7位; •数值位不够,则需要添加 0 补足,整数高位添 0 , 小数低位添0。 由机器数求真值,则需要先判断符号位的正负,然后 做不同操作求真值;无需转换为原码再求真值。 移码和补码只相差一个符号位,由真值写移码,最好 先写出补码,再将符号位取反就得出移码;由移码求 真值,也需要先将符号位取反得到补码,再由补码求 真值。
规格化浮点数:尾数没有前导零。 按照浮点数格式,尾数和阶码均有位数要求,如果 不够,则阶码前面添0,尾数后面添0。 阶码和尾数用规定的机器数表示。 3.8题的格式:数符在后面。
3
2010年研究生入学考试试题 13.假定有4个整数用8位补码分别表示r1=FEH, r2=F2H,r3=90H,r4=F8H,若将运算结果存放 在一个8位寄存器中,则下列运算会发生溢出 的是( ) A. r1×r2 B. r2×r3 C. r1×r4 D. r2×r4
解:x和z是32位补码表示的整数,y是16位补码表示的 整数,写出x、y和z(=127-9=118)的补码,则正确答 案是D
6
大纲例题 4.假定一个十进制数为-66,按补码形式存放 在一个8位寄存器中,该寄存器的内容用十六 进制表示为 A.C2H B.BEH C.BDH D.42H 解:先写出-66的二进制(=-1000010), 再写出其8位补码机器数:1 0111110 表示成16进制: 1011 1110B= BEH 答案:B
解:由补码求真值,分别为r1=-2,r2=-14,r3=-112,r4=-8。 则A=+28,B=1568,C=16,D=112, 又知8位补码表示范围为【-128,127】,所以其中只有B不在范围 内,故答案:B
4
2010年研究生入学考试试题
14.假定变量i,f,d数据类型分别为int, float, double(int用补码表示,float和double用IEEE754单 精度和双精度浮点数据格式表示),已知i=785, f=1.5678e3,d=1.5e100,若在32位机器中执行下列关 系表达式,则结果为真的是( ) (I) i==(int)(float)i (II)f==(float)(int)f (III)f==(float)(double)f (IV)(d+f)-d==f A. 仅I和II B. 仅I和III C. 仅II和III D. 仅III和IV
第三Fra Baidu bibliotek作业讲评
存在问题: 1.数据转换
十进制数转换为二进制数出错。 十进制数转换为八进制、十六进制数时,直接转换容易出错, 最好先转换为二进制,然后由二进制再转换为八进制、十六进 制数。 二进制转换为八进制、十六进制数时,要从小数点向两边三位、 四位一组划分,不足的要添零补足:整数高位添零,小数低位 添零。 •譬如:1111011.0111B=173.34Q;1111011.0111B≠173.31Q 小数转换为二进制数,如果是M/2n的形式,则先将分子M转换为 二进制数(整数),然后再把小数点左移n位即可。 •譬如: -19/128= -19/27 , -19=10011B ,小数点向左移 7 位得 0.0010011,所以-19/128= 0.0010011B
2009年研究生入学考试试题 12. 一个C语言程序程序在一台32位机器上运 行。程序中定义了三个变量x,y,和z,其中x和 z为int型,y为short型。当x=127,y= -9时, 执行赋值语句z=x+y后,x、y和z的值分别是 A. x=0000007FH, y=FFF9H, z=00000076H B. x=0000007FH, y=FFF9H, z=FFFF0076H C. x=0000007FH, y=FFF7H, z=FFFF0076H D. x=0000007FH, y=FFF7H, z=00000076H
7
2
第三章作业讲评 2.定点机器数的表示
表示方法不规范。譬如:写出X=-0.1101的原码、 反码和补码: • 正确写法:【X】原=1.1101, 【X】反=1.0010, 【X】补=1.0011, • 错误写法: 【1.1101 】原= 【 1.0010 】反= 【 1.0011 】补
3.浮点数的表示
1
第三章作业讲评
2.定点机器数
机器数的正数和负数的表示方法不一样,不能按照负 数的方法来表示正数,尤其反码和补码。 机器数的表示有位数要求: •如果机器数为8位,则符号位1位,数值位为7位; •数值位不够,则需要添加 0 补足,整数高位添 0 , 小数低位添0。 由机器数求真值,则需要先判断符号位的正负,然后 做不同操作求真值;无需转换为原码再求真值。 移码和补码只相差一个符号位,由真值写移码,最好 先写出补码,再将符号位取反就得出移码;由移码求 真值,也需要先将符号位取反得到补码,再由补码求 真值。
规格化浮点数:尾数没有前导零。 按照浮点数格式,尾数和阶码均有位数要求,如果 不够,则阶码前面添0,尾数后面添0。 阶码和尾数用规定的机器数表示。 3.8题的格式:数符在后面。
3
2010年研究生入学考试试题 13.假定有4个整数用8位补码分别表示r1=FEH, r2=F2H,r3=90H,r4=F8H,若将运算结果存放 在一个8位寄存器中,则下列运算会发生溢出 的是( ) A. r1×r2 B. r2×r3 C. r1×r4 D. r2×r4
解:x和z是32位补码表示的整数,y是16位补码表示的 整数,写出x、y和z(=127-9=118)的补码,则正确答 案是D
6
大纲例题 4.假定一个十进制数为-66,按补码形式存放 在一个8位寄存器中,该寄存器的内容用十六 进制表示为 A.C2H B.BEH C.BDH D.42H 解:先写出-66的二进制(=-1000010), 再写出其8位补码机器数:1 0111110 表示成16进制: 1011 1110B= BEH 答案:B
解:由补码求真值,分别为r1=-2,r2=-14,r3=-112,r4=-8。 则A=+28,B=1568,C=16,D=112, 又知8位补码表示范围为【-128,127】,所以其中只有B不在范围 内,故答案:B
4
2010年研究生入学考试试题
14.假定变量i,f,d数据类型分别为int, float, double(int用补码表示,float和double用IEEE754单 精度和双精度浮点数据格式表示),已知i=785, f=1.5678e3,d=1.5e100,若在32位机器中执行下列关 系表达式,则结果为真的是( ) (I) i==(int)(float)i (II)f==(float)(int)f (III)f==(float)(double)f (IV)(d+f)-d==f A. 仅I和II B. 仅I和III C. 仅II和III D. 仅III和IV
第三Fra Baidu bibliotek作业讲评
存在问题: 1.数据转换
十进制数转换为二进制数出错。 十进制数转换为八进制、十六进制数时,直接转换容易出错, 最好先转换为二进制,然后由二进制再转换为八进制、十六进 制数。 二进制转换为八进制、十六进制数时,要从小数点向两边三位、 四位一组划分,不足的要添零补足:整数高位添零,小数低位 添零。 •譬如:1111011.0111B=173.34Q;1111011.0111B≠173.31Q 小数转换为二进制数,如果是M/2n的形式,则先将分子M转换为 二进制数(整数),然后再把小数点左移n位即可。 •譬如: -19/128= -19/27 , -19=10011B ,小数点向左移 7 位得 0.0010011,所以-19/128= 0.0010011B