java左移和右移的運(yùn)算規(guī)則是什么

小億
195
2023-09-25 16:38:41
欄目: 編程語言

在Java中,左移和右移是位運(yùn)算操作符,用于對(duì)整數(shù)進(jìn)行位移操作。

  1. 左移運(yùn)算符(<<):將一個(gè)數(shù)的全部二進(jìn)制位向左移動(dòng)指定的位數(shù),右邊空出的位用0填充。左移運(yùn)算符的語法為:a << b,其中a為要進(jìn)行位移操作的數(shù),b為要左移的位數(shù)。

例如:

int a = 5; // 二進(jìn)制表示為:00000101

int b = a << 2; // 左移2位,結(jié)果為20,二進(jìn)制表示為:00010100

  1. 右移運(yùn)算符(>>):將一個(gè)數(shù)的全部二進(jìn)制位向右移動(dòng)指定的位數(shù),左邊空出的位用符號(hào)位填充。右移運(yùn)算符的語法為:a >> b,其中a為要進(jìn)行位移操作的數(shù),b為要右移的位數(shù)。

例如:

int a = 20; // 二進(jìn)制表示為:00010100

int b = a >> 2; // 右移2位,結(jié)果為5,二進(jìn)制表示為:00000101

值得注意的是,對(duì)于正數(shù),右移運(yùn)算會(huì)將空出的位用0填充;而對(duì)于負(fù)數(shù),右移運(yùn)算會(huì)將空出的位用1填充。這是因?yàn)镴ava使用的是算術(shù)右移。如果需要進(jìn)行邏輯右移,可以使用無符號(hào)右移運(yùn)算符(>>>),它會(huì)將空出的位全部填充為0。

0