1. ホーム
  2. bit-manipulation

[解決済み] 実際のプロジェクトでビットシフトを使用したことはありますか?[クローズド]

2023-06-24 13:57:40

質問内容

あなたは今まで ビットシフト を使ったことはありますか?ほとんどの(すべてではないにせよ)高級言語にはシフト演算子がありますが、実際にそれを使う必要があるのはどんなときでしょうか?

どのように解決するのですか?

私は今でも、ハードウェアで浮動小数点をサポートしていないシステム用のコードを書いています。これらのシステムでは、ほぼすべての演算にビット シフトが必要です。

また、ハッシュを生成するためにシフトが必要です。多項式演算 (CRC、リード ソロモン コードが主な用途) やシフトも使用します。

しかし、シフトは手軽で、書いた人の意図を正確に表現できるから使われているに過ぎません。やろうと思えばすべてのビットシフトを乗算でエミュレートすることもできますが、そうすると記述が難しくなり、可読性も低下し、場合によっては速度も低下します。

コンパイラは乗算がシフトに還元されるケースを検出します。