Java有运营商>>>和<<<,它们有点不同 - 请帮忙

Mar*_*gal 3 c# java operations bit-manipulation

可能重复:
C#中的Java三重移位运算符(>>>和<<<)的等价物?

Java有运营商>>>和<<<,它们与>>和<<有点不同 - 任何人都可以在C#中给我它的等价物吗?

Jon*_*eet 7

最简单(或至少是最符合逻辑)的等价物实际上是对等效的无符号类型的未经检查的强制转换,然后是正常的转换,然后可能再次抛出:

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

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

int result = unchecked ((int) u);
Run Code Online (Sandbox Code Playgroud)

(当然,如果你处于检查环境中,那么未经检查的部分才是相关的.)

根据我的经验,您通常希望>>>在Java中使用的时间,您只需使用无符号类型在C#中开始.