#include <iostream>
#include <vector>
#include <bitset>
using namespace std;
int main() {
// version using a vetor of bool (1 bit per element)
vector<bool> v;
bool a=1;
bool b=0;
bool c=1;
bool d=0;
v.push_back(a); v.push_back(b); v.push_back(c); v.push_back(d);
// but using/converting vetor<bool> is not so easy
for (int i=0; i<4; i++)
cout << v[i] <<" ";
cout<<endl;
// version using a bitset
bitset<8> s;
s[3]=a; // access elements as easily as in an array or a vector
s[2]=b;
s[1]=c;
s[0]=d; // least significant bit (according to the standard)
cout << s<<endl; // streams the bitset as a string of '0' and '1'
cout << "0x"<< hex << s.to_ulong()<<endl; // convert the bitset to unsigned long
cout << s[3] <<endl; // access a specific bit
cout << "Number of bits set: " << s.count()<<endl;
bitset<2400> ls;
ls[2201]=true;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Yml0c2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkvLyB2ZXJzaW9uIHVzaW5nIGEgdmV0b3Igb2YgYm9vbCAoMSBiaXQgcGVyIGVsZW1lbnQpCgl2ZWN0b3I8Ym9vbD4gdjsgIAoJYm9vbCBhPTE7Cglib29sIGI9MDsKCWJvb2wgYz0xOwoJYm9vbCBkPTA7Cgl2LnB1c2hfYmFjayhhKTsgdi5wdXNoX2JhY2soYik7IHYucHVzaF9iYWNrKGMpOyB2LnB1c2hfYmFjayhkKTsgCgkvLyBidXQgdXNpbmcvY29udmVydGluZyB2ZXRvcjxib29sPiBpcyBub3Qgc28gZWFzeQoJZm9yIChpbnQgaT0wOyBpPDQ7IGkrKykgCgkJY291dCA8PCB2W2ldIDw8IiAiOwoJY291dDw8ZW5kbDsgCgkKCS8vIHZlcnNpb24gdXNpbmcgYSBiaXRzZXQgCgliaXRzZXQ8OD4gczsgCglzWzNdPWE7ICAgLy8gYWNjZXNzIGVsZW1lbnRzIGFzIGVhc2lseSBhcyBpbiBhbiBhcnJheSBvciBhIHZlY3RvcgoJc1syXT1iOwoJc1sxXT1jOyAKCXNbMF09ZDsgICAvLyBsZWFzdCBzaWduaWZpY2FudCBiaXQgKGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQpCgljb3V0IDw8IHM8PGVuZGw7ICAgIC8vIHN0cmVhbXMgdGhlIGJpdHNldCBhcyBhIHN0cmluZyBvZiAnMCcgYW5kICcxJyAKCWNvdXQgPDwgIjB4Ijw8IGhleCA8PCBzLnRvX3Vsb25nKCk8PGVuZGw7IC8vIGNvbnZlcnQgdGhlIGJpdHNldCB0byB1bnNpZ25lZCBsb25nCgljb3V0IDw8IHNbM10gPDxlbmRsOyAgICAgLy8gYWNjZXNzIGEgc3BlY2lmaWMgYml0Cgljb3V0IDw8ICJOdW1iZXIgb2YgYml0cyBzZXQ6ICIgPDwgcy5jb3VudCgpPDxlbmRsOyAKCQoJYml0c2V0PDI0MDA+IGxzOyAgCglsc1syMjAxXT10cnVlOyAKCXJldHVybiAwOwp9