已知 float 型变量用 IEEE754 单精度浮点数格式表示。若 float 型变量 x 的机器数为 4730 0000H;则 x 的值为()
A. 0.375×2^14
B. 1.375×2^14
C.0.375×2^15
D. 1.375×2^15
要解决这个问题,需将十六进制表示的...
用户登录可进行刷题及查看答案
要解决这个问题,需将十六进制表示的 IEEE754 单精度浮点数转换为十进制值。以下是详细步骤:
1. 解析十六进制机器数
给定的机器数为 4730 0000H,转换为二进制:
十六进制每一位对应 4 位二进制,因此: 4730 0000H = 0100 0111 0011 0000 0000 0000 0000 0000B
4730 0000H = 0100 0111 0011 0000 0000 0000 0000 0000B
根据 IEEE754 单精度格式(32 位):
符号位(1 位):最高位为 0,表示正数。
0
指数位(8 位):接下来的 8 位为 10001110。
10001110
尾数位(23 位):剩余 23 位为 011 0000 0000 0000 0000 0000(即 011 后接 20 个 0)。
011 0000 0000 0000 0000 0000
011
2. 计算指数值
IEEE754 的指数采用偏移码表示,偏移量为 127。
127
二进制指数位 10001110 转换为十进制: 1×2^7 + 0×2^6 + 0×2^5 + 0×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 0×2^0 = 142
1×2^7 + 0×2^6 + 0×2^5 + 0×2^4 + 1×2^3 + 1×2^2 + 1×2^1 + 0×2^0 = 142
实际指数值为: E = 142 - 127 = 15
E = 142 - 127 = 15
3. 计算尾数(Mantissa)
尾数位默认隐含最高位 1(规格化数),因此实际尾数为: M = 1 + (尾数位二进制值) / 2^23
1
M = 1 + (尾数位二进制值) / 2^23
尾数位二进制为 0110000...000(共 23 位),即: 0×2^-1 + 1×2^-2 + 1×2^-3 + 0×2^-4 + ... + 0×2^-23 = 0.25 + 0.125 = 0.375
0110000...000
0×2^-1 + 1×2^-2 + 1×2^-3 + 0×2^-4 + ... + 0×2^-23 = 0.25 + 0.125 = 0.375
因此,完整尾数为: M = 1 + 0.375 = 1.375
M = 1 + 0.375 = 1.375
4. 组合符号、尾数和指数
浮点数的十进制值为: x = (-1)^S × M × 2^E
x = (-1)^S × M × 2^E
符号位 S=0,故 (-1)^0 = 1;
S=0
(-1)^0 = 1
代入 M=1.375 和 E=15,得: x = 1.375 × 2^15
M=1.375
E=15
x = 1.375 × 2^15
答案
选项 D(1.375×2^15)正确。
1.375×2^15
登录后提交答案
暂无评论,来抢沙发