在计算机中,浮点数用 尾数 和 阶码 表示如下:
浮点数真值 = 尾数 ×( 2 ^ 阶码 )
一般来说,
尾数数值:在 [ 1 ,2 ) 之间为有效数字
阶码:用整数表示的指数
【例】12.0 = 1.5 × ( 2^+3 )
汇编语言浮点数使用 IEEE754 规范,有 单精度REAL4 、 双精度REAL8 和 扩展精度REAL10 共3种类型。
这里只述说 单精度REAL4 的表示方法。
尾数:由 尾数符号( ms) 和 尾数数值(m) 两个部分。
单精度时,用 1位表示符号,8 位表示阶码,23 位表示尾数数值。
符号:第 31 位 ( 0 表示 正数,1 表示 负数)
阶码:第 23 ~ 30 位
尾数数值:第 0 ~ 22 位
【例】将 -29 转换为 机器码
① 符号:负号 --> 1
② 阶码:29 = 1.8125 ×( 2 ^ 4 ) ∴阶码为4
将其转换为移码 [ 4 ]移= 4 + 127 =128 + 3 = 1000 0011(B)
③尾数数值:实际保存尾数数值时,只保存了小数点后的数值,只需计算小数点后的数值即可
0.8125 × 2 = 1.625 ------- 1
0.625 × 2 = 1.25 ---------- 1
0.25 × 2 = 0.5 ------------- 0
0.5 × 2 = 1 ------------------ 1
其余位数在后面补零
∴ -29 的机器码为 1 1000 0011 110 1000 0000 0000 0000 0000