2017-07-14 111 views
-4

(uint32_t header; char array [32];) 如何将数据从头文件复制到C++数组中?如何进行这种转换?我尝试了类型转换,但它似乎不起作用。我应该如何将uint32_t值转换为大小为32的char数组?

+0

'uint32'是32位。 'char [32]'是32 * 8位。所以问题是,你究竟在尝试做什么?你怎么看待这样的转换应该发生? – Assimilater

+0

我其实想把uint32的数据以字符数组的形式存放 – user8158123

+0

的大小可以相应地调整一下 – user8158123

回答

1

使用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]; 
    } 
} 

这将类似于一个小端表示。