是否可以转换bitset< 8>。到整数字符数组?

时间:2011-02-15 15:47:24

标签: c++ bitset bitsets

我有bitset<8> v8,它的值类似于“11001101”,二进制的东西,我们如何将它转换为c ++中的字符数组或整数?

2 个答案:

答案 0 :(得分:2)

要转换为char数组,可以使用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 :(得分: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];
}