3

重複の可能性:
C# の Java トリプル シフト演算子 (>>> および <<<) と同等ですか?

Javaには演算子 >>> と <<< がありますが、これは >> と << とは少し異なります - 誰かが C# で同等のものを教えてくれますか?

4

4 に答える 4

7

最も単純な (または少なくとも最も論理的な) 同等のものは、実質的に同等の符号なし型への未チェックのキャストであり、その後に通常のシフトが続き、その後再びキャストバックされる可能性があります。

// To perform int result = x >>> 5;
int x = -10;

uint u = unchecked ((uint) x);
u = u >> 5;

int result = unchecked ((int) u);

(もちろん、チェックされていない部分は、チェックされたコンテキストにいる場合にのみ関連します。)

私の経験では、通常は Java で使用>>>したい場合、C# では署名なしの型を使用するだけです。

于 2011-07-25T12:31:52.803 に答える
2

c# に相当するものはありません。左側で符号なしの値を使用すると、c#では Java>>と同じ機能が実行されます。>>>

したがって、目的の効果を得るにはキャストする必要があります。

于 2011-07-25T12:31:08.387 に答える
2

Javaには>>><<<演算子があるとは思わない)C#には存在しない符号なし右シフト演算子があります。Javaには署名されていないデータ型がないため、Javaにあります。C# では、>>演算子で符号なしの型を使用するだけです。

于 2011-07-25T12:31:20.010 に答える
2

>>>Java の符号なしシフト操作です。

C# は符号なし整数をサポートしているため、C# には同等のものはありません。したがって、それらをシフトすることができます。

于 2011-07-25T12:31:51.107 に答える