ビット演算

1年ほど前、ニコニコ生放送で某生主(球団を保有するD社のバリバリの若いweb系エンジニアで、ノーベル賞受賞者を何人も排出している某国立K大学の化学工学系院卒)と話してたら、ビット演算のことを何も知らないのでとてもびっくりした。

彼は、生放送でスマホ用ゲームアプリを開発していたのだが、ビット演算が全然わかっていなかったためにあさってなコーディングをしていたのだ。
まあ、web系エンジニアなら業務上は必要なさそうだしビット演算知らなくても不思議じゃないかと思い、基礎を説明したら、あっという間にマスターされてしまった。さすがである。

実は筆者はビット演算が大好きである。
局所的でパズル的なテクニックが多く、慣れないと少々わかりづらいかもしれないが、パフォーマンス向上効果は絶大だ。

というわけで、知ってれば便利で有用でどこかで役に立つかもしれないビット演算について、これから順次解説していこうと思う。
まず、今回はビット演算の基本の基本だ。

C/C++ には以下のビット演算のための演算子が用意されてるぞ。

& 論理積
| 論理和
^ 排他的論理和
~ ビット反転
<< 左シフト
>> 右シフト

それぞれの説明は次回以降だ。乞うご期待。

なお、ビット演算の理解には2進数・16進数の理解が必須だ。
あやふやな人は C/C++ 言語 2進数 16進数 入門 を事前に読んでおこう!