具体来说,我说的是x87 PC架构和C编译器. 我正在编写自己的解释器,双数据类型背后的推理使我感到困惑.特别是在效率方面.有人可以解释为什么C决定64位双倍而不是硬件本机80位双?为什
我正在编写自己的解释器,双数据类型背后的推理使我感到困惑.特别是在效率方面.有人可以解释为什么C决定64位双倍而不是硬件本机80位双?为什么硬件固定在80位双,因为它没有对齐?每个的性能影响是什么?我想使用80位双精度作为我的默认数字类型.但是编译器开发人员的选择让我担心这不是最好的选择.
> x86上的double只缩短了2个字节,为什么编译器默认不使用10个字节的长双精度?
>我可以得到一个80位长双倍与双倍得到的额外精度的例子吗?
>为什么Microsoft默认禁用long double?
>就幅度而言,在典型的x86 / x64 PC硬件上,差多少/慢一倍?
在32位x86架构上,由于所有CPU还没有SSE2,Microsoft仍然使用浮点单元(FPU)x87,除非给出了编译器开关/ arch:SSE2.哪个代码与那些较旧的代码不兼容?的CPU.