For instance, storing the status of the lights in 8 rooms:
We need to define an array of at least 8 chars. If the light of room 3 is turned on the value of the third char is 1, otherwise 0.
Total array of 64 bits.
It is better to define only 8 bits since a bit can also store the values 0 or 1.
But the problem is that there is no C type which is 1 bit long (char is the longer with 1 byte).
Solution: define a char (8 bits) but refer to each bit separately.
Bitwise operators, introduced by the C language, provide one of its more powerful tools for using and manipulating memory. They give the language the real power of a “low-level language”.
Accessing bits directly is fast and efficient, especially if you are writing a real-time application.
A single bit cannot be accessed directly, since it has no address of its own.
The language introduces the bitwise operators, which help in manipulating a single bit of a byte.
bitwise operators may be used on integral types only (unsigned types are preferable).