在HashMap中出現(xiàn)了>>和>>>
其中>>是有符號右移,>>>是無符號右移。
>>表示:不管是正數(shù)還是負數(shù),在移位時,所有移位的位置都置為0;例如:
int i = 2 >> 1;
int j = -2 >> 1;
輸出分別為1和-1。因為2在二進制中為00000000~00010(共32位),經(jīng)過位運算0000~000001(共32位),即為1;-2在二進制中為10000000~00010(共32位),經(jīng)過位運算1000~000001(共32位),即為-1;
>>>表示:正數(shù)時,在移位時,所有移位的位置都置為0;負數(shù)時所有當前位置前的原本為1的置為0,原本為0的置為1;
int i = 2 >>> 1;
int j = -2 >>>1;
所以,正數(shù)不管是>>還是>>>操作,這兩者操作的結(jié)果一樣。-2在二進制中為10000~00010(32位),進行>>>移位時,先移位成10000~000001(32位),再將移位后的位置前的取相反。則為011111~1111(32位),即int最大值