Java有运算符>>>和<<<两者有些不同 - 请帮忙

发布于 2024-11-26 07:41:48 字数 310 浏览 0 评论 0 原文

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

Java 有运算符>>>和<<<与>>有点不同和<< - 谁能给我 C# 中的等价物?

Possible Duplicate:
Equivalent of Java triple shift operators (>>> and <<<) in C#?

Java has operator >>> and <<< which are a bit different then >> and << - can anyone give me its equivalent in C# ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

旧城空念 2024-12-03 07:41:49

没有 C# 等效项,如果您在左侧使用无符号值,则 C# 中的 >> 将执行与 java 中 >>> 相同的功能。

因此,您需要进行投射才能获得所需的效果。

There is no c# equivalent, if you use an unsigned value on the left, >> in c# will perform the same function as >>> in java.

You therefore need to cast to get the desired effect.

两个我 2024-12-03 07:41:49

Java 有 >>> (我不认为有 <<< 运算符),它是无符号右移运算符,不存在于c#. java中就有这个,因为java没有无符号数据类型。在 C# 中,只需使用带有 >> 运算符的无符号类型。

Java has >>> (I don' think there is a <<< operator) which is the unsigned right shift operator that is not present in c#. It is there in java as java has not unsigned data types. In c# just use an unsigned type with >> operator.

野侃 2024-12-03 07:41:49

>>>是Java中的无符号移位运算。

它们在 C# 中没有等效项,因为 C# 支持无符号整数,因此您可以直接对它们进行移位。

>>> is an unsigned shift operations in Java.

They don't have an equivalent in C# because C# supports unsigned integers and hence you can just shift on those.

这个俗人 2024-12-03 07:41:48

最简单(或至少最合乎逻辑)的等效方法实际上是对等效无符号类型进行未经检查的强制转换,然后进行正常移位,然后可能再次强制转换:(

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

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

int result = unchecked ((int) u);

未经检查的部分仅在您处于已检查上下文中时才相关当然。)

根据我的经验,当您通常想要在 Java 中使用 >>> 时,您只需使用无符号类型来开始C#。

The simplest (or at least most logical) equivalent is effectively an unchecked cast to the equivalent unsigned type, followed by a normal shift and then potentially a cast back again:

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

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

int result = unchecked ((int) u);

(The unchecked part is only relevant if you're otherwise in a checked context, of course.)

In my experience, times where you normally want to use >>> in Java, you'd just use unsigned types to start with in C#.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文