i have writebit method should write least significant bit of int buffer buff of type char , increment bit buffer index. not sure if have correct, input appreciated.
private: char buff; // buffer int num_bits; // num of bits written buff std::ostream& os_ref; public: // skipping constructor , ostream& brevity int writebit(int i) { // flush buffer if full if(num_bits == 8) flush(); // write least significant bit buffer @ current index. int lb = & 1; buff = buff & num_bits; // not sure line buff = lb; num_bits++; // return current index return num_bits; // return nbits current index? }
i guess should work, let me know :
buff |= (i & 1) << nbits;
be sure buff
set 0 during flush()
basically, i & 1
last significant bit, << nbits
move bit on left nbits times , bit added buff.