bit operatorの意図

アンティークなプログラマーは、ビット演算を多用したがる。
現在のコンパイラでは、十分に速いコードを吐くので、
余計なことをせず読みやすいコードを書くべきだが、自分が書かなくても人が書く。

乗算・減算

const int a = 1024;
const int b = a << 1; // a * 2
const int c = a << 4; // a * 16 
const int d = a >> 1; // a / 2
const int e = a >> 4; // a / 16

余り

const int a = 1024;
const int b = a & 15; // a % 16
const int c = a &  7; // a %  8
const int d = a &  3; // a %  4
const int e = a &  1; // a %  2