I'm terribly sorry if this is below-standard question, but I couldn't find clear answers.
As the title says, why does True and (~True) give -2 while True&(~True) gives 0?
Also, Why do both of them not give False?
This is very counter-intuitive, since I expect for a single boolean expression & and and should work in the same way.