java中的左移和右移 JAVA表達(dá)式a >>> 2什么意思?
JAVA表達(dá)式a >>> 2什么意思?&在Java語(yǔ)言中,>>;GT2表示整數(shù)a向右移動(dòng)2位,不帶符號(hào),高位用0填充。讓我給你一個(gè)Java語(yǔ)言的例子??纯垂差恆{publicstaticvo
JAVA表達(dá)式a >>> 2什么意思?
&在Java語(yǔ)言中,>>;GT2表示整數(shù)a向右移動(dòng)2位,不帶符號(hào),高位用0填充。讓我給你一個(gè)Java語(yǔ)言的例子??纯垂差恆{publicstaticvoidmain(string[]args){inta=-20系統(tǒng)輸出打印( 整數(shù).toBinaryString(a) )//>>>不帶符號(hào)右移,忽略符號(hào)位,用0 int結(jié)果填充高位=a>>> 2系統(tǒng)輸出打印( 整數(shù).toBinaryString(result))}運(yùn)行結(jié)果11101011111010顯示-20的二進(jìn)制是11101011,它被右移2位。此時(shí),高位用0填充,即0011 1010,結(jié)果是result=58
原文是:對(duì)于無(wú)符號(hào)數(shù)據(jù),另一方面,右移必須是另一方面,無(wú)符號(hào)數(shù)的右移操作必須是邏輯的。有符號(hào)數(shù)需要考慮正數(shù)和負(fù)數(shù)的情況,其算術(shù)右移需要在左端對(duì)原始符號(hào)位(最高位)進(jìn)行補(bǔ)充;無(wú)符號(hào)數(shù)沒(méi)有符號(hào)位,其右移運(yùn)算總是在左端對(duì)零進(jìn)行補(bǔ)充。因此,對(duì)于無(wú)符號(hào)數(shù)不存在所謂的“算術(shù)右移運(yùn)算”,必須使用左端為零的“邏輯右移運(yùn)算”。