Java中的移位運(yùn)算符包括左移運(yùn)算符(<<)、右移運(yùn)算符(>>)和無(wú)符號(hào)右移運(yùn)算符(>>>)。
左移運(yùn)算符(<<)將一個(gè)數(shù)的二進(jìn)制表示向左移動(dòng)指定的位數(shù),移出的位將被丟棄,右側(cè)用0填充。
右移運(yùn)算符(>>)將一個(gè)數(shù)的二進(jìn)制表示向右移動(dòng)指定的位數(shù),移出的位將被丟棄,左側(cè)用符號(hào)位填充。如果該數(shù)為正,則左側(cè)用0填充;如果該數(shù)為負(fù),則左側(cè)用1填充。
無(wú)符號(hào)右移運(yùn)算符(>>>)將一個(gè)數(shù)的二進(jìn)制表示向右移動(dòng)指定的位數(shù),移出的位將被丟棄,左側(cè)用0填充。
移位運(yùn)算符的使用方式如下:
int a = 10;
int b = a << 2; // 左移2位,相當(dāng)于將二進(jìn)制表示的a向左移動(dòng)2位
int c = a >> 1; // 右移1位,相當(dāng)于將二進(jìn)制表示的a向右移動(dòng)1位
int d = a >>> 3; // 無(wú)符號(hào)右移3位,相當(dāng)于將二進(jìn)制表示的a向右移動(dòng)3位,并用0填充左側(cè)的空位
注意:移位運(yùn)算符只能用于整數(shù)類(lèi)型(byte、short、int和long),無(wú)法用于浮點(diǎn)數(shù)類(lèi)型。