c++ - 浮点计算实际上如何在 C++ 中工作?

标签 c++ performance floating-point

请告诉我 C++ 如何将两个浮点型数字相加并使过程如此之快。我正在尝试创建一个可以计算大量数字的库,但我将它们相加的过程比两个 float 的效率低 1000 倍。

最佳答案

答案是 CPU 具有知道如何存储 float 并能够直接对其执行计算的硬件。

例如,您可以将两个 float 存储在寄存器 xmm0 和 xmm1 中,并通过让 CPU 执行以下指令将它们相加:-

添加 %xmm1, %xmm0

这是针对 64 位“x86”的,但每个 CPU 都有相似之处。

嗯,旧的 CPU,例如 8 位 Z80 没有执行 float 学运算的硬件,您必须编写少量代码来执行此操作,是的,它们很慢...

关于c++ - 浮点计算实际上如何在 C++ 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35932761/

相关文章:

time.Ticker 的性能

Java BigDecimal - 需要解释

Java 到 C++ 进程间通信

c++ - Boost phoenix可变参数函数解析

performance - Int32 与 Float64 在 Crystal 中的表现

performance - 将 Word2Vec 模型高效引入生产服务

c - Simd matmul程序给出不同的数值结果

c - 除以零 - C 编程

java - C、C++ 或 Objective-C 中的 System.arraycopy() 等效项

C++ ffmpeg 视频丢失帧并且无法在 Quicktime 中播放