我需要在循环中有效地将一些常量添加或乘以 double 类型的结果,以防止下溢。例如,如果我们有 int,则乘以 2 的幂将很快,因为编译器将使用位移位。是否有一种形式的常数可以有效地进行double
加法和乘法?
编辑:似乎没有多少人理解我的问题,为我的草率道歉。我将添加一些代码。如果a
是 int,这(乘以 2 的幂)会更有效
int a = 1;
for(...)
for(...)
a *= somefunction() * 1024;
与将 1024 替换为 1023 相比。如果我们想添加到 int,不确定什么是最好的,但这不符合我的兴趣。我对a
双倍的情况感兴趣。我们可以有效地添加和乘以双精度数的常数形式(例如 2 的幂)是什么?常数是任意的,只需要足够大以防止下溢。
这可能不仅限于 C 和 C++,但我不知道更合适的标签。