如何在没有FPU的计算机上计算浮点数

abh*_*r88 3 c floating-point

C语言有数据类型float.一些机器具有浮点处理器,其执行所有浮点计算.我的问题是:是否有一些没有浮点处理器的机器?这些机器如何使用浮点?

wal*_*lyk 7

许多小型控制器没有浮点单元.在这种情况下,有一个浮点软件库.

在20世纪80年代中期,如果我们的系统有8087,8086和8088的FPU,我们认为自己很幸运.不幸的是,如果8087存在与否,我们的软件必须正常工作.这意味着如果丢失,则捕获并模拟8087指令.


ami*_*mit 5

c 标准允许浮点数。

编译器有责任将其转换为特定的硬件架构。

如果硬件指令集支持浮点数 [大多数现代机器都支持],那么 - 编译器很可能会使用它。

否则,它将不得不创建一个本地语言代码来模拟浮点的行为。它是如何完成的?您可以在wikipeida 页面和这篇关于浮点运算的更详细的文章中阅读更多关于浮点的信息