Java和JavaScript中的运算符>>>有什么区别?

JavaScript代码:

alert( -123456 >>> 0 ); // Prints 4294843840

Java代码:

System.out.println( -123456 >>> 0 ); // Prints -123456

为什么?我已经阅读了文档,但没有发现不同。如何将JavaScript代码移植到Java?

回答:

两者都是合乎逻辑的右移,但JavaScript在处理数字方面有些怪异。通常,JavaScript中的数字为浮点数,但按位运算会将其转换为无符号的32位整数。因此,即使该值看起来不应更改,它也会将数字转换为32位无符号整数。

您看到的值4294843840与相同-123456,但被解释为无符号而不是有符号。

以上是 Java和JavaScript中的运算符>>>有什么区别? 的全部内容, 来源链接: utcz.com/qa/402545.html

回到顶部