c++ - How to write least significant bit into the buffer? -


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.