下面以數(shù)17為例展示一下對正負17進行移位后的結(jié)果
正數(shù)17機器碼表示為
0000 0000 0000 0000 0000 0000 0001 0001
負數(shù)17機器碼表示為(原碼求反再加1)
1111 1111 1111 1111 1111 1111 1110 1111
左移操作符<<
定義:左移操作符規(guī)定將操作符左邊的數(shù)向左移動n位(低位補0)
求17<<2的值
1,17左移兩位后二進制為 0000 0000 0000 0000 0000 0000 0100 0100
2,轉(zhuǎn)化為十進制為68(十進制)
3,17<<2 = 68
求-17<<2的值
1,-17左移兩位后二進制為1111 1111 1111 1111 1111 1111 1011 1100
2,轉(zhuǎn)成對應(yīng)原碼是 1000 0000 0000 0000 0000 0000 0100 0100
3,轉(zhuǎn)換為十進制為 -68
4,-17<<2 = -68
右移操作符>>
定義:右移位操作符按照操作符右側(cè)指定的位數(shù)移動n位,對于正數(shù)來說在高位插入0,對于負數(shù)的話在高位插入1
求17>>2的值
1,17右移兩位后二進制為 0000 0000 0000 0000 0000 0000 0000 0100
2,轉(zhuǎn)化為十進制為4
3,17>>2 = 4
求-17>>2的值
1,-17右移兩位后二進制為 1111 1111 1111 1111 1111 1111 1111 1011
2,轉(zhuǎn)化為原碼為 1000 0000 0000 0000 0000 0000 0000 0101
3,十進制表示為 -5
右移操作符>>>
定義:右移位操作符按照操作符右側(cè)指定的位數(shù)移動n位,但無論正負都在高位補0
求17>>>2的值
1,17右移兩位后二進制為 0000 0000 0000 0000 0000 0000 0000 0100
2,轉(zhuǎn)化為十進制為4
3,17>>2 = 4
求-17>>>2的值
1,右移后為 0011 1111 1111 1111 1111 1111 1011 1100
2,轉(zhuǎn)化為十進制為1073741819
3,-17>>>2 = 1073741819