0

それを「<<<」と呼びましょう

int32variable <<< numberOfBits

等しい

(int32variable << numberOfBits) | (int32variable >> (32 - numberOfBits))

(<<および>>がオーバーフローしたビットを破棄すると仮定します)

そのようなオペレーターはいますか?

4

4 に答える 4

4

これはビットローテーションと呼ばれ、C#にはそのような演算子がありません。

ここに興味深い投稿があります: C#で循環ビットシフトを実行する方法はありますか?

int32integerはuint(unsigned int)型である必要があることに注意してください。

ビットローテートはIntel命令セットの命令だと思いますが、私が知る限り、CLRにはビットローテート命令がありません。

于 2009-06-08T01:05:31.153 に答える
1

これはビット単位の回転と呼ばれます。他の言語にはありますが、C#にはありません。詳細については、この質問を参照してください。ただし、その要点は、現在のアプローチが可能な限り優れているということです。

于 2009-06-08T01:05:41.310 に答える
0

C#には、探していることを実行するための基本的な演算子はありません。

メソッド呼び出しのパフォーマンスへの影響を無視すると(ビットシフト操作を実行している場合は気になるかもしれません)、これはInt32の拡張メソッドの良い候補になります。

于 2009-06-08T00:57:28.237 に答える
0

C#にはないと思います。C#演算子のリストについては、次のページを参照してください:http: //msdn.microsoft.com/en-us/library/6a71f45d (vs.71).aspx 。

私はあなたがあなたの質問で示した方法がおそらくそれをする最も速い方法だと思います。Javaにはあなたが求めているようなシフト演算子があるかもしれないと思いますが、Javaプログラマーではないのでそれを確認することはできません。

于 2009-06-08T01:12:48.690 に答える