【发布时间】:2012-08-23 23:10:36
【问题描述】:
谁能解释一下>>> 运算符在Java 中的作用。
我在这个问题中遇到了它,Hash method in HashMap。从它在问题中的用法来看,它似乎是一个移位运算符 - >>> 和 >> 之间有什么区别?
【问题讨论】:
标签: java
谁能解释一下>>> 运算符在Java 中的作用。
我在这个问题中遇到了它,Hash method in HashMap。从它在问题中的用法来看,它似乎是一个移位运算符 - >>> 和 >> 之间有什么区别?
【问题讨论】:
标签: java
无符号右移运算符“>>>”将零移到最左边的位置,而“>>”之后的最左边的位置取决于符号扩展。
【讨论】:
int 和 long 类型已签名。它不需要无符号左移,因为那会做同样的事情。
你可以通过一个简单的程序看出区别:
public static void main(String[] args) throws InterruptedException, IOException {
int i = -1;
int j = i >> 1;
int k = i >>> 1;
System.out.println("i = " + i + "\t\t<=> " + Integer.toBinaryString(i));
System.out.println("j = " + j + "\t\t<=> " + Integer.toBinaryString(j));
System.out.println("k = " + k + "\t<=> " + Integer.toBinaryString(k));
}
输出:
i = -1 <=> 11111111111111111111111111111111
j = -1 <=> 11111111111111111111111111111111
k = 2147483647 <=> 1111111111111111111111111111111
【讨论】:
【讨论】: