in reply to unpacking 6-bit values
How would you do this efficiently in C anyway?
Ask the people who write FAT 12 drivers in C. (FAT 12 has two 12-bit values packed in three bytes.)