Each character contains 6 bits. So you can store a value between 0 and 63 in one character (2^6=64). Starting character is the blank " " which has the value 0. The first character in the string is the one with the lowest bits (0-5).
test_bit("_",5);
Returns 1 because "_" stands for the number 63 and therefore
the 6th bit is set.
test_bit(" ",3);
Returns 0 because " " stands for 0 and no bit is set.