Use the bit shift operator <<
. It shifts bits by a certain amount.
For example, 5 << 2
is 20
, because 101 shifted left by two is 10100, or twenty.
vector<bool> v; // plus initialization
char c;
for(size_t i = 0; i < v.size(); i++) {
c += v[i] << (v.size() - i - 1);
}
This assumes you want this big endian (most signitficant bit first). If you want little endian, change (v.size() - i - 1)
to i
.