少し哲学的な質問だと思います。
OR
C 言語には、 、AND
、XOR
、、 などのビット演算の標準セットがSHIFT LEFT/RIGHT
ありNOT
ます。左回転/右回転の演算子または関数が言語に含まれていないのはなぜですか?
これらの演算子は、他のビット単位の演算子と同じ複雑さであり、通常、他の演算子と同様に単一のアセンブリ命令を必要とします。その上、私は回転演算子の多くの用途を考えることができます。おそらく、たとえばxor
演算子よりも少なくないでしょう。そのため、それらが他のものと一緒に C に含まれていないのは少し奇妙に思えます。
C または C++ でローテーションする必要がある場合は、ベスト プラクティスに関する別の FAQ の質問があります。それについての議論は、この質問のトピックではありません。