1

最近,我研究了 IEEE 754-1985 标准。在阅读了网上的一些资料后,我想我已经掌握了浮点数的基本思想。同时,我有一个无法通过搜索网络解决的问题。也就是说,计算机系统如何将浮点数(二进制形式)转换为十进制等效值,并将其作为字符串打印在屏幕上供我们阅读?

为了清楚起见,例如,在 C/C++ 语言中,我们只需编写:

...
float x,y,z;
x=3.14;
y=2.71;
z=x+y;
printf("%f",z);

我们将在屏幕上得到 5.85 作为结果。但是计算机(或只是 C 语言及其编译器)如何将 x,y 转换为 IEEE 二进制浮点形式并在 CPU 计算后将 IEEE 形式转换回十进制字符串形式?

是否有一些算法和这种转换?顺便说一句,是硬件还是软件做到了这一点?

谢谢!:-)

4

1 回答 1

0

你应该看看glibc,尤其是printf函数。这就是至少一种流行实现的权威答案所在。不过,我怀疑它的可读性太强了。

它肯定是在软件中完成的。

http://www.gnu.org/software/libc/download.html

于 2013-07-11T08:09:48.007 回答