gpt4 book ai didi

c++ - 十六进制到长双C++

转载 作者:行者123 更新时间:2023-11-30 04:15:51 25 4
gpt4 key购买 nike

有人知道如何在 C++ 中将 long double 转换为 hex 以及如何从 hex 转换为 long double 吗?我已经使用 istringstream 将 HEXstring 转换为 double 到 long long 并将其转换为 double,但不知道如何转换 long double,以及如何测试类似的东西。

最佳答案

如果您真的确定要这样做,您最多可以使用 union 来“欺骗类型系统”。显然,这是原始内存访问,并且有很多警告。其中最重要的一点是,它仅“通常”有效,但不受语言规范的保证。

输出 long double 的原始字节的代码如下。从十六进制字符串重新组装长 double 的代码应该不难自己提供。

#include <stdio.h>

typedef union {
long double ld;
char bytes[sizeof(long double)];
} converter;

int main() {
converter c;
c.ld = 3.49;
printf("0x");
for (int i = 0; i < sizeof(long double); ++i) {
printf("%x", c.bytes[i]);
}
printf("\n");
}

关于c++ - 十六进制到长双C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18118997/

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