178、给定二进制浮点值1101.01101,如何将其表示为十进制分数的和?
1101.01101 = (1 × 2³) + (1 × 2²) + (0 × 2¹) + (1 × 2⁰) + (0 × 2⁻¹) + (1 × 2⁻²) + (1 × 2⁻³) + (0 × 2⁻⁴) + (1 × 2⁻⁵)
= 8 + 4 + 0 + 1 + 0 + 1/4 + 1/8 + 0 + 1/32
= 13 + 8/32 + 4/32 + 1/32
= 13 13/32
179、为什么十进制的0.2不能用有限位数的比特精确表示?
将十进制小数转换为二进制小数时,采用 乘2取整法 。
对于十进制数 0.2 ,不断乘以 2:
-
0.2 × 2 = 0.4,整数部分为 0 -
0.4 × 2 = 0.8,整数部分为 0 -
0.8 × 2 = 1.6,整数部分为 1 -
0.6 × 2 = 1.2,整数部分为 1 -
0.2 × 2 = 0.4,整数部分为 0
可以发现出现了循环,即商的比特序列开始重复( 0011... ),所以无法找到精确的商,即 0.2 不能用有限位数的比特表示。
180、双精度浮点数的长度是多少?
一个64位的双精度值使用1位表示符号位,11位表示指数位,52位表示尾数的小数部分,所以双精度浮点数长度为64位。
181、NaN有哪两种类型?
x86包含的两种NaN类型为:
- 安静NaN(quiet NaN) :可以在大多数算术运算中传播而不引发异常。
- 信令NaN(signaling NaN) :可用于生成浮点无效操作异常。
182、FSTP指令与FST指令有何不同?
FST(存储浮点值)指令将浮点操作数从FPU栈顶复制到内存,不弹出栈;而FSTP(存储浮点值并弹出)指令将ST(0)的值复制到内存,同时将ST(

最低0.47元/天 解锁文章
98

被折叠的 条评论
为什么被折叠?



