我必须将一个整数值乘以 2^31。我用谷歌搜索了它,看起来双打的范围在 2.23e-308 <= |X| 之间 <= 1.79e308 使用 64 位,浮点数介于 1.18e-38 <= |X| <= 3.40e38。
这比我需要的要多得多。但它不起作用。
我的头文件中有这个常量值:
static const float SCALE_FACTOR = 2^-31;
如果那时我只是这样做:
float dummy = SCALE_FACTOR;
那么,dummy 的值为 11。
我不知道问题是否在于分配这样的常量值,但我不知道如何在不丢失精度的情况下编写它。
有什么帮助吗?
编辑:对不起,愚蠢的问题。我的 MatLab 背景背叛了我,忘记了 ^ 不适用于 C++ 中的求幂。我已经投票关闭。