c - 如何将 uint64_t 的位存储在 double 中?

标签 c r

基本上我有一个 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/

相关文章:

r - 计算一段时间内的返回

使用 data.table 删除字符串的一部分

r - 从 R 创建 CouchDB 设计文档

objective-c - 这安全吗? (指向 Objective C 实例变量的指针)

c - 我想知道这个程序中数组的长度是如何计算的?

c - 如何观察父进程和子进程之间的资源争用

r - 使用 sapply() 在两个参数上循环 uniroot()

javascript - C:字符串操作和 Arduino

C - 获取最小可能的有符号整数

r - 调整条形图中的图例位置