【例 1】(全国计算机学科联考专业基础综合卷第 12 题,2 分): 一种 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 【解析】 D
本题目波及知识点如下:(1)十进制数转换为二进制数:十进制转二进制的措施为整数部分除 2 取余倒计数,小数部分乘 2 取整正计数
(2)转成 32 位补码[127]补=[1111111B]补=[+0000000000000000000000001111111B]补=00000000000000000000000001111111B=0007FH[-9]补=[-1001B]补=[-0000000000000000000000000001001B]补(3)求 x+y 的真值及补码 127+(-9)=118[118]补=[1110110B]补=[+0000000000000000000000001110110B]补=00000000000000000000000001110110B=00076H 或补码直接求和:0007FH+0FFF7H =00076H答案为 D
【例 2】(全国计算机学科联考专业基础综合卷第 13 题,2 分): 浮点数加减运算过程一般包括对阶、尾数运算、规格化、舍入和判溢出等环节
设浮点数的阶码和尾数均采用补码表达,且位数分别为5 位和 7 位(均含 2 位符号位)
若有两个数 X=27×2