如何将一种格式作为六角化?
double t = 1.123;
fmt::format("{:x}", t);
它引发异常“无效类型说明符”。
我想要字符串3ff1f7ced916872b
发布于 2022-09-13 10:30:27
您可以使用std::bit_cast
将double
转换为适当大小的整数和十六进制格式,例如假设IEEE754 double
double t = 1.123;
auto s = fmt::format("{:x}", std::bit_cast<uint64_t>(t));
// s == "3ff1f7ced916872b"
https://stackoverflow.com/questions/73696408
复制相似问题