为什么电子计算机要把数表示为二进制浮点数
我们在日常生活中遇到的许多数,它们有一个共同的特点,就是小数点的位置都是固定的。例如,圆周率π=3.1416,它的小数点固定在3与1之间。=1.7321,它的小数点固定在1与7之间。光在真空中传播的速度C=299792.4562公里/秒,它的小数点固定在2与4之间。这种小数点具有固定位置的作用,我们就称为定点数。
为方便起见,光的速度可以近似地取为300000公里/秒,或写成3×105公里/秒,也就是说,把原来的数写成一个数再乘上一个10的乘幂的形式。当然,我们还可以把原来的数写成一个10的乘幂乘上一个纯小数的形式,例如106×0.3、108×0.003等等,这些数的小数点是浮动的,但它们都表示同一个数。又例如,-32.147可以写成-10+2×0.32147或-10+3×0.032147等等。-0.0027可以写成-10-2×0.27或-10-1×0.027等等。
一般地,任何一个十进制数,都可以表示成下列形式的浮点数:
![]() |
紧靠等号的“±”表示X(二)的正负号,称为数符。p称为阶数,它是十进制表示的零和正整数。p前面的“±”表示阶数的正负号,称为阶符。q称为尾数,它是十进制表示的零和正小数,即
0≤q<l。
根据这一规定,我们只讨论尾数是纯小数的浮点数,例如,-10+2×0.32147、+10-2×0.27、-lO+3×0.032147、+10-1×0.027等等,而不讨论-10+1×3.2147、+10-4×27等形式的数。虽然这样,当我们把一个十进制数化成浮点数时,结果并不是唯一的。如果我们要求
![]() 即要求尾数的第一位小数不为零时,那么,一个十进制数就能化成唯一确定的浮点数,这个数就称为十进制浮点规格化数。例如,-10+2×0.32147就是浮点规格化数,而-10+3×0.032147、-10+4×0.0032147等都是浮点非规格化数。因为它们尾数的第一位小数是零。 同理,二进制数0.0011(二)可以写成2-1×0.011(二)或2-10×0.11(二),等,-llOl.Oll(二)可以写成-2+100×0.1101011(二)或-2+101×0.01101011(二)等。 一般地,任何一个二进制数都可以表示成下列形式的浮点数:
紧靠等号的“±”表示x(二)的正负号,称为数符。阶数p是二进制表示的零和正整数。P前面的“±”表示阶数的正负号,称为阶符。尾数q是二进制表示的零和正小数,即 0≤q<1。 如果我们要求
|