计算机中浮点怎么表示?求例子

如题所述

第1个回答  2022-11-16

浮点由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。

浮点数a由两个数m和e来表示:a = m × b^e(b的e次方)。

在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...ddd的p位数(每一位是一个介于0到b-1之间的整数,包括0和b-1)。如果m的第一位是非0整数,m称作规格化的。

有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。

我们可以用这3种方法来表示浮点数:

1、BCD 代码。

2、 阶码尾数表示法。

3、 我们可以把第二种方法改造一下,就能得到一种更好的方法。先把一个浮点数的小数点移到最后,用N=M×RC 表示,R=10,然后再把M 转换为二进制B,再用C 做阶码,B 做尾数用阶码尾数法表示。

例如: 3.14159=314159×10^(-5)。

314159 用二进制表示为1001100101100101111。

用这种方法不仅可以精确表示浮点数的值,还可以充分的利用存储空间。

扩展资料:

浮点运算单元(FPU)

浮点数运算和整数运算不同,所以运算单元当然不同。早期的浮点处理器是作为 CPU 的「外置协处理器」出现的。x87 FPU 特指与 x86 处理器配套的浮点协处理器架构。

有以下要点:

1、浮点寄存器采用栈结构。

深度为 8,宽度为 80 位,即 8 个 80 位的寄存器。

名称为 ST(0) ~ ST(7),栈顶为 ST(0),编号分别为 0 ~ 7。

2、所有浮点运算都按 80 位拓展精度进行。

3、浮点数在浮点寄存器和内存之间传送。

(1)float、double、long double 型的变量在内存中分别用 IEEE 754 单精度、双精度、扩展精度表示,分别占 32 位,64 位,96 位(前 16 位无效)。

(2)float、double、long double 类型变量在浮点寄存器中都用 80 位拓展精度表示。

(3)从浮点寄存器到内存:80 位拓展精度格式转换为 32 位或者 64 位。

(4)从内存到浮点寄存器:32 位或者 64 位转换为 80 位扩展精度格式。

参考资料来源:


相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网