2011-02-15 36 views
1

我有bitset<8> v8和它的值是像「11001101」,在二進制的東西,我們如何將它轉換爲字符或整數在c + +數組?是否可以將位集<8>轉換爲整數字符數組?

+0

如何你想要解釋「11001101」嗎?每個數字作爲一個字符(和一個int)? – Nawaz 2011-02-15 15:49:47

+0

每個數字作爲一個字符,因爲我想做一個矩陣,因爲我將需要每個作爲字符 – bijlikamasla 2011-02-15 15:51:44

回答

2

要轉換爲字符數組,你可以使用bitset::to_string()函數來獲取字符串表示,然後從該字符串拷貝單個字符:

#include <iostream> 
#include <algorithm> 
#include <string> 
#include <bitset> 
int main() 
{ 
     std::bitset<8> v8 = 0xcd; 

     std::string v8_str = v8.to_string(); 
     std::cout << "string form: " << v8_str << '\n'; 

     char a[9] = {0}; 
     std::copy(v8_str.begin(), v8_str.end(), a); 
     // or even strcpy(a, v8_str.c_str()); 
     std::cout << "array form: " << a << '\n'; 
} 
1
vector<int> ints; 
for(int i = 0 ; i < v8.size() ; i++) 
{ 
    ints.push_back(v8[i]); 
} 

同樣,你可以創建一個字符數組。或者你可以使用原始數組:

char chars[8]; 
for(int i = 0 ; i < v8.size() ; i++) 
{ 
    chars[i] = v8[i]; 
} 
+0

謝謝,但如果我使用cout來顯示它們,它不會給出正確答案 – bijlikamasla 2011-02-15 16:05:39

相關問題