Im reading about logical operators (yes noob here) and Im sort of confused as to what some of them actually mean.

Example: if b1 is true and b2 is false

!(b1 & b2) is true

b1 | b2 is true

b1 & b2 is false

b1 ^ b2 is true

i know that:

& is AND

| is OR

! is NOT

^ is XOR

But the question is what do the above comparisons (b1 ^ b2), or (!(b1 & b2)) actually mean, if translated into english what does that say? And what is the difference between XOR and OR. I think XOR is actually false if both boolean values are the same, but im not sure on that one.