ビット演算

CPUの創りかた
 組み込みなんかは知らないけど、
もう普通にプログラムするときはあまり使わないかな…。
ゲームのフラグ管理なんかには使いそうだけど。

NOT / ビット反転 / 補数 / ~

入力出力
01
10


 ~(0101) は 1010 になります。


AND / 論理積 / &

01
000
101


 0101 & 0011 は 0001
 

OR / 論理和/ |

01
001
111


 0101 | 0011 は 0111


XOR / 排他的論理和 / ^

01
001
110


 0101 ^ 0011 は 0110


左シフト/ <<

 ビットをn回左に動かします。
空きには0が入ります。


0011 << 1 は 0110
0011 << 2 は 1100


 左シフト1回で値は2倍になります。

右シフト / >>

 ビットをn回右に動かします。
空きには0が入る場合と1が入る場合があります(言語によるらしい……)


0101 >> 1 は 0010
0101 >> 2 は 0001


 右シフト1回で値は1/2倍になります。


CPUの創りかた

CPUの創りかた

組込み現場の「C」プログラミング基礎からわかる徹底入門

組込み現場の「C」プログラミング基礎からわかる徹底入門

実践TRON組込みプログラミング―T-KernelとTeaboardで学ぶシステム構築の実際

実践TRON組込みプログラミング―T-KernelとTeaboardで学ぶシステム構築の実際