Java 有运算符 >>> 和 <<< 与 >> 和 << 有点不同 - 任何人都可以在 C# 中给我它的等价物吗?
问问题
1274 次
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 回答