で<8> 2ビットをBITSET>このようになりますこと:C++へのアクセスは、私はビットセット< 8のベクトルを持っている時
01010110 01010111 01011000
など。私は一度にビット2にアクセスするにはどうすればよい
?変数に2ビットを格納するにはどうすればよいですか?
そして、その後、その後、私が欲しいベクトル01
の最初の要素、
01
、
01
については
、10
など..私は想像することができます
で<8> 2ビットをBITSET>このようになりますこと:C++へのアクセスは、私はビットセット< 8のベクトルを持っている時
01010110 01010111 01011000
など。私は一度にビット2にアクセスするにはどうすればよい
?変数に2ビットを格納するにはどうすればよいですか?
そして、その後、その後、私が欲しいベクトル01
の最初の要素、
01
、
01
については
、10
など..私は想像することができます
一つの簡単な方法は、このやっている:
#include <iostream>
#include <string>
#include <bitset>
#include <vector>
int main() {
std::vector<std::bitset<8>> vec_b8 {
std::bitset<8>("01010110"),
std::bitset<8>("01010111"),
std::bitset<8>("01011000")
};
std::vector<std::bitset<2>> vec_b2;
for(auto b8 : vec_b8) {
for(size_t i = b8.size() - 2; i > 0; --i) {
std::bitset<2> b2;
b2[0] = b8[i];
b2[1] = b8[i+1];
vec_b2.emplace_back(b2);
}
}
for(auto b2 : vec_b2) {
std::cout << b2.to_string() << " ";
}
}
出力は
です01 10 01 10 01 11 01 10 01 10 01 11 01 10 01 11 10 00
Live Demoを参照してください。
文字列に変換してから、最初に文字列に変換します。 – 0x499602D2
'std :: bitset'は[索引演算子](http://en.cppreference.com/w/cpp/utility/bitset/operator_at)をサポートしています。格納するために 'std :: vector>'を使うことができます。 –
user0042
@ 0x499602D2どのように文字列に変換しますか? static_cast? – Gus