基本上我有一个 uint64_t
,我不关心它的实际值。我需要将它存储在 double
中,以便我可以轻松地将这些位存储在 R 中的对象中(如果您不知道那是什么,那很好,这对问题无关紧要).
所以我想要的是一种将 uint64_t
的 64 位存储在 double
中然后从 double
转换的方法> 将这些位保留为原始的 uint64_t
。
我一直在用头撞墙(这是双关语吗?)所以非常感谢任何和所有的帮助!!!
最佳答案
如评论中所述,您可以使用 memcpy将位从 uint64_t
复制到 double
。
之所以可行,是因为 double
的大小与 uint64_t
的大小相同(8 字节)。
如果您尝试显示这些值,您将不会得到相同的结果。事实上,double 存储正值和负值,带有 float ,而 uint64_t
是……无符号整数。
二进制表示相同,解释值不同。
关于c - 如何将 uint64_t 的位存储在 double 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37581609/