// x-run: make clean test_bitstream run_test_bitstream #include "./bitstream.h" int main(void) { BitStream bs = bitstream_init_empty(16 * 2); bitstream_set(bs, 16 * 0 + 0, 1); bitstream_set(bs, 16 * 2 + 2, 1); bitstream_set(bs, 16 * 4 + 4, 1); bitstream_set(bs, 16 * 8 + 8, 1); bitstream_set(bs, 16 * 4 + 4, 0); printf(" "); for (int i = 0; i < 16; i++) printf("%2x", i); printf("\n"); for (int i = 0; !bitstream_end(bs); i++) { if (i % 16 == 0) printf("%2x", i >> 4); printf("\033[%dm ", bitstream_next(&bs) \ ? (i >> 4 & 1 ? 47 : 107) \ : (i >> 4 & 1 ? 40 : 100)); if (i % 16 == 15) printf("\033[0m\n"); } bitstream_unload(&bs); }