Chapter 4, page 52
I'm not sure I understand how boolean assignment operators work. The table here, indicates (in the result column) that var2 is in some way being added to var1. However, based on previous pages, my understanding says different.
var1 &= var2; /* If I understand correct, then var1 is true only if var1 and var2 are both true */
var1 |= var2; /* var1 is true if either var1, var2, or both are true. */
var1 ^= var2; /* var1 is true if either var1 OR var2 is true, but not both. */
The way the first line of the table is written, it looks like you are adding var1 to var2. var1 &= var2; "var1 is assigned the value that is the result of var1 & var2." This looks like var1 = var1 + var2. Almost identical wording for the other two lines in that table make it more confusing.
The three lines I placed in the second paragraph is my best guess at what is meant here. Please tell me if I am correct, and if not, can you explain Boolean Assignment Operators better to me?