位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

位運算和移位運算

提問人:ylm發(fā)布時間:2020-09-25

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位丟棄,在右邊補y0.

c.右移運算:x >> y.x右移y位,這需要區(qū)分x是有符號數(shù)還是無符號數(shù)。在x是無符號數(shù)時,只需將x的最右邊的y位丟棄,在左邊補上y0。在x是有符號數(shù)時,又分為x是正數(shù)還是負(fù)數(shù)。正數(shù)時,同無符號數(shù)的處理相同;負(fù)數(shù)時,將將x的最右邊的y位丟棄,在左邊補上y1.

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部