## #194 – Storing a Set of Boolean Values as Bits

You might want to store a set of boolean values in a single variable.  For example, you could keep track of a person’s talents, recording which talents each person has.

E.g.:

• Fred: good at Singing, Dancing
• Sally:  good at Dancing, Juggling
• Ernie: good at Juggling, Joke-Telling, Singing

One way to store this information is to represent each talent with a single bit in a larger word and to then use the entire word to represent a person’s talents.  A bit value of 1 indicates that the person has the talent and 0 indicates that they do not have the talent.  Each person can have 0 or more talents.

For example, we could store information about four talents using four bits:

• Bit 0 (rightmost) – Singing
• Bit 1 – Dancing
• Bit 2 – Juggling
• Bit 3 (leftmost) = Joke-Telling

Here are the bit patterns for the sets of talents listed above (each word is 4 bits):

• 0 0 1 1 = Dancing + Singing  (Fred)
• 0 1 1 0 = Juggling + Dancing  (Sally)
• 1 1 0 1 = Joke-Telling + Juggling + Singing  (Ernie)