Nはここでは0か1となります。 どこて1になっているかわからないと思いますが、実は「N=!N」のところです。 !は真と偽を反転させる演算子です。 一般的に偽は0、真は0以外と定義されています。 便宜上、真(TRUE)は1と定義されています。偽(FALSE)は0です。 「? TRUE」「? !TRUE」「? FALSE」「? !FALSE」としてみて下さい。 真(1)と偽(0)が反転しているのが判ると思います。 これを利用しています。 「N=!N」は、Nが0なら1に、Nが1なら0になります。