2017-07-14 71 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]; 
    } 
} 

這將類似於一個小端表示。