我们知道double可以从存储数量±4.94065645841246544e-324来±1.79769313486231570e+308.我们可以存储像IPv6这样的128位值double并按原样检索吗?例如,要存储IPv4,我们可以使用32位整数并将它们存储为8位分区.我们可以通过使用位屏蔽来检索它们.
在任何语言AFAIK中都没有标准容器来存储128位.我知道double可以安全地存储64位而没有任何精度错误,但有任何黑客攻击吗?
技术上你可以,如果sizeof(double) * CHAR_BITS≥128(我的机器上是64位),但你为什么要这样做?而不是重新发明轮子使用sockaddr_in6,或者,如果你必须,一个uint8_t或一个阵列std::bitset.
相关答案:存储IPv4/IPv6地址的有效方式