基礎知識の欄にありますがこれは分かり難い物なので
初めて解析をしますという人は読み飛ばして下さい
深くやり込みたい人だけ読んで下さい。


改造コードでもちらほらと出てくる論理演算
これは値を2進数(ビット単位)で
法則に沿って計算するという物です。

論理演算は全部で6種類(だったハズ)
コードに関係する物で憶えておきたい物は
「論理和」「論理積」「排他的論理和」の3種類ですが
PS2ではたまに「否定論理和」も使われているので
全部で4種類を覚えればよいという事になります。

それでは各種演算方法を図付きで解説します
出てくる数値は全て2進数状態での説明になるので
16進数などと混合しないように気を付けて下さい。


・論理和(OR演算) 「どちらか一方の値が1(真)であれば1(真)とし 0(偽)同士の場合はそのまま0(偽)とする」 「10010101」と「01110001」をorすると 「11110101」という計算結果になります。
X Y X or Y
0 0 0
0 1 1
1 0 1
1 1 1
・論理積(AND演算) 「双方の値が1(真)であれば1(真)とし 一方が0(偽)、または0(偽)同士の場合は0(偽)とする」 「10010101」と「01110001」をANDすると 「00010001」という計算結果になります。
X Y X and Y
0 0 0
0 1 0
1 0 0
1 1 1
・排他的論理和(XOR演算) 「どちらか一方の値が1(真)であれば1(真)とし 双方が0(偽)か1(真)同士の場合は0(偽)とする」 「10010101」と「01110001」をXORすると 「11100100」という計算結果になります。
X Y X xor Y
0 0 0
0 1 1
1 0 1
1 1 0
・否定論理和(NOR演算) 「双方の値が0(偽)であれば1(真)とし 一方が1(真)、または双方が1(真)の場合は(偽)とする」 「10010101」と「01110001」をNORすると 「00001010」という計算結果になります。
X Y X nor Y
0 0 1
0 1 0
1 0 0
1 1 0

余談ですが、論理積や排他的論理和は算数に使われるだけではなく 日常会話の中にもさりげなく混ざっている物だったりします。 論理積なら「〜且つ」という意味があり、例えば 「ファ○通は面白くて、且つ値段も手ごろです」 というのは実は論理積だったりします。 面白いがX、安いがY、それをANDしたのがファ○通 でもどちらかが欠けるとファ○通ではなくなるという意味です。 論理和は「〜または」という意味があり 「連絡はメール、または電話にてお願いします」という会話も メールがX、電話がY、それをORすると どちらでも連絡が付きますよという意味になります。 排他的論理和も「〜または」という意味がありますが これは「どちらか一方だけ」と制限があり 「千円と二千円の割引サービスは同時に利用できません」 などが排他的論理和に当てはまります。