ビット演算
論理演算
デジタルな計算方法
ビット単位で2つを合わせて別の状態として表現する方法?
NAND (NOT AND) や NOR (NOT OR) どちらかだけで全部作れるらしいぞ
table:bit
A B AND OR XOR NOT A NAND NOR
論理積 論理和 排他的論理和 否定 否定論理積 否定論理和 算術右シフト 右シフト 左シフト
A & B A | B A^B ~A ~(A & B) ~(A | B) >>> >> <<
0 0 0 0 0 1 1 1
0 1 0 1 1 1 1 0
1 0 0 1 1 0 1 0
1 1 1 1 0 0 0 0
∧∩ || ∨ ⊕ ¬ !
CPUなどでは8bit, 64bitなどでまとめて計算することも多い
Java の boolean型のように単体でも利用可能 true を 1, false を 0とする
∩ ∪ ⊕
組み合わせることで四則演算なども可能
似たもの
CPU
8bit または CPUのビット長など
桁上りなどがない計算
OR でフラグの合成
ANDでフラグの削除
判定
ANDで必要なビットだけを抽出することでビットの判定などが利用できたりできなかったり