1.<< 左移
2.>>> 無符號右移
3.>> 有符號右移
先說說移位,是對一串二進(jìn)制數(shù)進(jìn)行移位。
分為左移以及右移,右移又分為有符號右移以及無符號右移,那么他們的區(qū)別又是什么呢?
演示一下:
左移
00001111
====>00011110
====>00111100
====>01111000
有符號右移
00001111
====>00000111
====>00000011
====>00000001
11110000
====>11111000
====>11111100
====>11111110
無符號右移
00001111
====>00000111
====>00000011
====>00000001
11110000
====>01111000
====>00111100
====>00011110
區(qū)別:
1.左移/右移:在于二進(jìn)制數(shù)移動的方向不同.
2.有符號/無符號:因移動而空出的符號位,是否按原來的符號位數(shù)字來補(bǔ).
計算:
1.左移n位,相當(dāng)于乘以2^n,溢出時會為零
2.右移,相當(dāng)于除以2^n,不過負(fù)數(shù)要注意符號問題
舉個例子:
定義一個byte類型的變量,值為-7
,它在計算機(jī)中的存儲為1111 1001.
左移一位: 1111 0010
= -14
左移兩位: 1110 0100
= -28
有符號右移一位: 1111 1100
= -4
無符號右移一位: 0111 1100
= 124