gpt4 book ai didi

c++ - 是否可以使用 double 来存储和安全检索 128 位 IPv6?

转载 作者:太空宇宙 更新时间:2023-11-04 14:47:39 26 4
gpt4 key购买 nike

我们知道 double 可以存储从 ±4.94065645841246544e-324±1.79769313486231570e+308 的数字。我们可以在 double 中存储像 IPv6 这样的 128 位值并按原样检索吗?例如,要存储 IPv4,我们可以使用 32 位整数并将它们存储为 8 位分区。我们可以使用位掩码来检索它们。

在任何语言 AFAIK 中都没有标准容器来存储 128 位。我知道 double 可以安全地存储 64 位而不会出现任何精度错误,但是否有任何 hack?

最佳答案

从技术上讲,如果 sizeof(double) * CHAR_BITS ≥ 128(在我的机器上是 64 位),你可以这样做,但你为什么要这样做?不要重新发明轮子,而是使用 sockaddr_in6,或者,如果必须,使用 uint8_t 数组或 std::bitset .

相关回答:Efficient way to store IPv4/IPv6 addresses

关于c++ - 是否可以使用 double 来存储和安全检索 128 位 IPv6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40050286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com