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

C語言基礎知識—位運算

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

位運算符 & |~<< >> ∧ 按優(yōu)先級從高到低排列的順序是:

位運算符中求反運算“~“優(yōu)先級最高,而左移和右移相同,居于第二,接下來的順序是按位與 “&“、按位異或 “∧“和按位或 “|“。順序為~ << >> & ∧ | 。

1:左移運算符“<<”是雙目運算符。其功能把“<< ”左邊的運算數(shù)的各二進位全部左移若干位,由“<<”右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補0。="" <="" span="">

例如: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00(十進制48)。

2:右移運算符“>>”是雙目運算符。其功能是把“>> ”左邊的運算數(shù)的各二進位全部右移若干位,“>>”右邊的數(shù)指定移動的位數(shù)。

例如: a=15, a>>2 表示把右移為十進制3)。

應該說明的是,對于有符號數(shù),在右移時,符號位將隨同移動。當為正數(shù)時,最高位補0,而為負數(shù)時,符號位為1,最高位是補0或是補1 取決于編譯系統(tǒng)的規(guī)定。

3:設二進制數(shù)a是00 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數(shù)b是。

解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數(shù)中值為1的位與1進行異或運算得0 ,原數(shù)中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變量。

 

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

相關視頻回答
回復(0)
返回頂部