gpt4 book ai didi

c++ - 我在这里做 double 到 float 的转换吗

转载 作者:行者123 更新时间:2023-11-28 00:16:59 25 4
gpt4 key购买 nike

const double dBLEPTable_8_BLKHAR[4096] = {
0.00000000000000000000000000000000,
-0.00000000239150987901837200000000,
-0.00000000956897738824125100000000,
-0.00000002153888378764179400000000,
-0.00000003830892270073604800000000,
-0.00000005988800189093979000000000,
-0.00000008628624126316708500000000,
-0.00000011751498329992671000000000,
-0.00000015358678995269770000000000,
-0.00000019451544774895524000000000,
-0.00000024031597312124120000000000,
-0.00000029100459975062165000000000
}

如果我将上面的 double 更改为 float,我在对数组内容执行操作时是否会产生转换 cpu 周期?还是在编译时整理出“转换”?

比如说,dBLEPTable_8_BLKHAR[1] + dBLEPTable_8_BLKHAR[2],像这样简单的东西?

在相关说明中, float 应该能够存储多少位小数?

这是 C++。

最佳答案

任何好的编译器都会在编译时转换初始值设定项。不过,你也问了

am I incurring conversion cpu cycles when I perform operations on the array contents?

这取决于执行操作的代码。如果您的表达式将数组元素与 double 类型的变量组合在一起,则运算将以 double 执行,并且数组元素将在算术发生之前提升(转换)。

如果您只是将数组元素与 float 类型的变量(包括其他数组元素)组合在一起,那么该操作将在 float 上执行并且该语言不需要任何提升(但是如果您的硬件只实现 double 运算,转换可能仍会完成。不过,这样的硬件肯定会使转换成本非常低。)

关于c++ - 我在这里做 double 到 float 的转换吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29579798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com