あとNOTについてですがウッノさんが書いておられるようにビット反転であり、論理反転ではないのでNOT 1が0にならないのは正しいです。 1を2進数で表すと  00000000000000000000000000000001 これをビット反転すると  11111111111111111111111111111110 これを10進数で表すと  -1 つまり、NOT Aというのは-A-1と等しくなるわけです。