C includes operators to manipulate memory at the bit level. This is useful for writing low level hardware or operating system code where the ordinary abstractions of numbers, characters, pointers, etc… are insufficient - an increasingly rare need. Bit manipulation code tends to be less “portable”.