/ 知识库     / 试卷库

浮点数的表示方法

视频简介

浮点数N=M×rE

其中,r是浮点数阶码的底,也称为尾数的基值,通常r=2。

E(阶码部分)和M(尾数部分)都是带符号的定点数,在大多数计算机中,尾数为纯小数,常用原码或补码表示,决定了浮点数的精度;阶码为纯整数,常用移码或补码表示,决定了浮点数的表示范围。

设某浮点数的格式如下图所示,k和n分别表示 阶码和尾数的位数(不包含符号位),尾数和阶码均用补码表示。

当es=0,ms=0时,阶码和尾数的数值位全为1(即阶码和尾数都为最大正数)时,该浮点数为最大正数:

X最大正数=(1-2-n)×22^k-1

当es=1,阶码的数值位均为1;ms=0,尾数的最低位mn=1,其余各位为0(即阶码为绝对值最大的负数,尾数为最小的正数)时,该浮点数为最小正数:

X最小正数=2-n×2-2^k

当es=0,阶码的数值位均为1;ms=1,尾数的数值位全为0(即阶码为最大正数,尾数为绝对值最大的负数)时,该浮点数为绝对值最大的负数:

X绝对值最大的负数=-1×2-2^k-1

浮点数的阶码是带符号的定点整数,在多数通用计算机中,采用移码表示,即在真值的基础上增加一个常数,此常数被偏置值。

对于字长为8位的定点整数,如果偏置值为27,则有:

真值X(十进制)真值X(二进制)[X]补[X]移
-128-1000 00001000 00000000 0000
-127-111 11111000 00010000 0001
-1-000 00011111 11110111 1111
0000 00000000 00001000 0000
1000 00010000 00011000 0001
127
111 11110111 11111111 1111

① 在移码中,最高位“0”表示负数,最高位“1”表示正数,与原码、反码、补码的符号位相反;

② 移码为全“0”时,它所对应的真值最小,为全“1”时,它所对应的真值最大,因此,移码的大小直观地反映了真值的大小,有助于两个浮点数进行阶码大小比较;

③ 真值0在移码中的表示形式也是唯一的;

④ 移码把真值映射到一个正数域,所以可将移码视为无符号数,直接按无符号数规则比较大小;

⑤ 同一数值的移码和补码除最高位相反外,其它各位均相同。