-4
(uint32_t header; char array [32];) 如何将数据从头文件复制到C++数组中?如何进行这种转换?我尝试了类型转换,但它似乎不起作用。我应该如何将uint32_t值转换为大小为32的char数组?
(uint32_t header; char array [32];) 如何将数据从头文件复制到C++数组中?如何进行这种转换?我尝试了类型转换,但它似乎不起作用。我应该如何将uint32_t值转换为大小为32的char数组?
使用std::bitset得到的二进制表示,转换至字符数组:
#include <iostream>
#include <cstdint>
#include <bitset>
int main()
{
std::uint32_t x = 42;
std::bitset<32> b(x);
char c[32];
for (int i = 0; i < 32; i++)
{
c[i] = b[i] + '0';
std::cout << c[i];
}
}
这将类似于一个小端表示。
'uint32'是32位。 'char [32]'是32 * 8位。所以问题是,你究竟在尝试做什么?你怎么看待这样的转换应该发生? – Assimilater
我其实想把uint32的数据以字符数组的形式存放 – user8158123
的大小可以相应地调整一下 – user8158123