gpt4 book ai didi

c++ - 在 C++ 中将 double 转换为 8 长度的 char 数组

转载 作者:行者123 更新时间:2023-11-28 06:22:49 25 4
gpt4 key购买 nike

我想在 C++ 中将 double 转换为 8 长度的 char 数组。问题是我想覆盖 double 类型的所有字节数(在 c++ 中,double 并不总是 8 字节长)。

char数组只是用来存放double的字节,就好像char类型=byte类型。

有什么想法吗?

最佳答案

是的,您始终可以将任何对象视为字节数组。要访问字节,请使用重新解释转换:

T x;    // any object

unsigned char const * bytes = reinterpret_cast<unsigned char const *>)(&x);

for (std::size_t i = 0; i != sizeof(T); ++i)
{
std::fprintf("Byte %zu is %02X\n", bytes[i]); // assuming CHAR_BIT == 8
}

请注意,通常没有办法知道哪些字节是对象表示的一部分,以及它们的实际含义是什么。例如,long double 在某些平台上的大小可能为 12 或 16,但只有 10 个相关字节,而且您不知道哪个是哪个。尽管对于大小为 8 的 double 来说,假设没有填充并且字节以线性顺序构成 IEEE-754 表示是合理的。您的平台手册可能会告诉您。

关于c++ - 在 C++ 中将 double 转换为 8 长度的 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29049322/

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