C言語、ビットパターンを確認したいとき、
int target = 100;
int a = (target >> i) & 0x01
とかってやりますよね。
これって、最近知ったんだけど、
target が、 整数型じゃないとエラーになるのね!
float とか、double だとコンパイルエラーを吐く。
低レイヤー言語らしく、実数型の数値もシフト演算できる機能なんてあったらおもしろくない?
double a = 1;
double b = a >> 1;
printf(“%lf\n”, b); // 0.5
自分がコンパイラを作るんだったら、こんな遊び心のある論理シフト演算とか作ってみたいね。