【发布时间】:2015-05-11 20:26:46
【问题描述】:
您好,我想知道是否有人可以帮助我解决一些我在网上几乎找不到的东西。 我正在查看一些具有以下语句的代码:
int mainInt = 10>>> 5;
有谁知道这个 >> 运算符是什么?
例如 10 >> 1 等于 5 20 >>> 等于 3
谢谢
【问题讨论】:
-
你不能移动 20 来得到 3,因为 20 的二进制表示是
10100和3是11。
您好,我想知道是否有人可以帮助我解决一些我在网上几乎找不到的东西。 我正在查看一些具有以下语句的代码:
int mainInt = 10>>> 5;
有谁知道这个 >> 运算符是什么?
例如 10 >> 1 等于 5 20 >>> 等于 3
谢谢
【问题讨论】:
10100 和 3 是 11。
>> 是arithmetic right-shift operator。
>>> 是logical right-shift operator。
第一个保留操作数的符号。第二个在最高有效位位置插入零,通常应用于无符号数。
【讨论】:
这已经回答了:Double Greater Than Sign (>>) in Java?
有符号左移运算符“>”将位模式移到 对。位模式由左侧操作数给出,而 右手操作数移位的位置数。未签名的 右移运算符“>>>”将零移到最左边的位置, 而“>>”之后最左边的位置取决于符号扩展。
你可以阅读它here。
【讨论】: