我有一些自然的双倍大数字。我需要得到它最右边的 30 位(不可分割的部分)。如果它是整数,则操作是:
var & 0x3FFFFFFF
我可以为此目的实现一些功能,但我需要一些简单的解决方案。有吗?
*编辑:
所有的答案都不适合我。我将尝试解释:例如,我有双 x = 9362446620820194.0000,该数字的整数部分的最右边 30 位是数字 957350626。
我可以使用 uint64_t 而不是 double,但我需要支持 32 位系统。
ps 我的意思是简单的二进制数表示,而不是机器(内存)