【发布时间】:2016-10-14 19:00:26
【问题描述】:
我们知道double 可以存储从±4.94065645841246544e-324 到±1.79769313486231570e+308 的号码。我们可以在double 中存储像 IPv6 这样的 128 位值并按原样检索吗?例如,要存储 IPv4,我们可以使用 32 位整数并将它们存储为 8 位分区。我们可以使用位掩码来检索它们。
没有标准容器可以存储任何语言 AFAIK 的 128 位。我知道double 可以安全地存储 64 位而不会出现任何精度错误,但是有什么 hack 吗?
【问题讨论】:
-
你不能在小于128位的情况下存储128位的信息,double通常有64位,所以没有
-
检查
sizeof(double)是什么。如果不是16,则不是。 -
不,这行不通。 IPv6 地址是 128 位整数,其有效数字太多。浮点数没有足够的有效数字。