【讲古堂】浮点数
【 讲古堂 】 浮点数 ( dubenju@126.com 2015/12/19 ) 众所周知,由于用高低电平的电路很容易实现二进制,所以在计算机中普遍采用二进制来存储数据。对应的二进制的位用 Bit 来表示。 1 字节 =8Bits ,如果考虑符号的话,那么一个字节能存储的数值范围是 -128 到 127 。只能是整数,不能是小数。那么小数怎么办呢? 小数的话,一定要有小数点的。如果把小数点固定在一个不变的位置的话,就成了定点数。比如 Oracle 数据库的 NUMBER(4, 2) 则能存储 17.25 或 0.50 这样的数。 定点数 (Fixed Point Number) 所谓定点数,即约定数据的小数点位置是固定不变的。通常将定点数据表示成纯小数或纯整数。为了将数表示成纯小数,通常把小数点固定在数值部分的最高位之前;而为了把数表示成纯整数,则把小数点固定在数值部分的最后面。 对纯小数进行运算时,要用适当的比例因子进行折算,以免产生溢出,或过多损失精度。 假设用一个 n 位字来表示一个定点数 x= x0 x1 x2 … xn-1 ,其中一位 x0 用来表示数的符号位,其余位数代表它的量值。为了对所有 n 位进行统一处理,符号位 x0 通常放在最左位置,并用数值 0 和 1 分别代表正号和负号。对于任意定点数 x= x0 x1 x2 … xn-1 ,如果 x 表示的是纯小数