asclass BitOutputStream { abstract void writeBit(bool b); // little-endian (starts with lowest bit) void writeBits(int data, int nBits) { for i to nBits: { writeBit(odd(data)); data >>= 1; } } }