>>435
=は代入
a =!a
ってことはaにaの逆を代入するってことだと思う。

ゼロは偽 非ゼロは真だから
もし a=1の状態だったとしたら
a=!aを実行すると、aに0が代入され、
a=0だったら
a=!aを実行すると、aに1が代入されるんじゃないかと。

自分もそんなに詳しくないのでわかりにくかったらごめん。