位運算和移位運算
(1)& :如果兩個相應(yīng)的二進制位都為1,則該位的結(jié)果值為1;否則為0.
(2) | :兩個相應(yīng)的二進制位中只要有一個為1,該位的結(jié)果值為1.
(3)^ :若參加運算的兩個二進制位同號則結(jié)果為0(假)異號則結(jié)果為1(真).
(4)~ :~是一個單目(元)運算符,用來對一個二進制數(shù)按位取反,即將0變1,將1變0.
(5)>> :表示將a的各二進制位右移N位,移到右端的低位被舍棄,對無符號數(shù),高位補0.
(6)<< :左移運算符是用來將一個數(shù)的各二進制位全部左移N位,右補0.
注意
a.任何一個數(shù)和0異或是它的本身,和自身異或為0.
b.左移運算:x << y.將x左移y位,將x最左邊的y位丟棄,在右邊補y個0.
c.右移運算:x >> y.將x右移y位,這需要區(qū)分x是有符號數(shù)還是無符號數(shù)。在x是無符號數(shù)時,只需將x的最右邊的y位丟棄,在左邊補上y個0。在x是有符號數(shù)時,又分為x是正數(shù)還是負(fù)數(shù)。正數(shù)時,同無符號數(shù)的處理相同;負(fù)數(shù)時,將將x的最右邊的y位丟棄,在左邊補上y個1.
點擊加載更多評論>>