c語言 位運算

2021-10-08 05:17:36 字數 1154 閱讀 2145

按位與運算子"&"是雙目運算子。其功能是參與運算的兩數各對應的二進位相與。

只有對應的兩個二進位均為 1 時,結果位才為 1,否則為 0。參與運算的數以補碼方式

出現。例如:9&5 可寫算式如下:

00001001 (9 的二進位制補碼)

&00000101 (5 的二進位制補碼)

00000001 (1 的二進位制補碼)

可見 9&5=1。

按位或運算子「|」是雙目運算子。其功能是參與運算的兩數各對應的二進位相或。只

要對應的二個二進位有乙個為 1 時,結果位就為 1。參與運算的兩個數均以補碼出現。

例如:9|5 可寫算式如下:

00001001

|00000101

00001101 (十進位制為 13)可見 9|5=13

按位異或運算子「^」是雙目運算子。其功能是參與運算的兩數各對應的二進位相異

或,當兩對應的二進位相異時,結果為 1。參與運算數仍以補碼出現,例如 9^5 可寫成算式

如下:00001001

^00000101

00001100 (十進位制為 12)

求反運算子~為單目運算子,具有右結合性。其功能是對參與運算的數的各二進位按位

求反。例如~9 的運算為:

~(0000000000001001)結果為:1111111111110110

左移運算子「<<」是雙目運算子。其功能把「<< 」左邊的運算數的各二進位全部左移若

乾位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補 0。

例如:a<<4

指把 a 的各二進位向左移動 4 位。如 a=00000011(十進位制 3),左移 4 位後為 00110000(十進

制 48)。

右移運算子「>>」是雙目運算子。其功能是把「>> 」左邊的運算數的各二進位全部右移若

乾位,「>>」右邊的數指定移動的位數。

例如:設 a=15,

a>>2

表示把 000001111 右移為 00000011(十進位制 3)。

c語言位運算

c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0 按位或 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1 按位異或 若參加運算的兩個二進位制位值相同則為0,否則為1 取反 是一元運算子,用來對乙個二進位制數按位取反,即將0變1...

C語言位運算

c語言位運算 位運算應用口訣 清零取反要用與,某位置一可用或 若要取反和交換,輕輕鬆鬆用異或 移位運算 1 它們都是雙目運算子,兩個運算分量都是整形,結果也是整形。2 am p 3 amp amp amp qu ot 右 移 右邊 的位被擠 掉。對於 左邊移出 的空位,如果是正 數則空位 補0,若 ...

C語言位運算

位運算是指按二進位制進行的運算。在系統軟體中,常常需要處理二進位制位的問題。c語言提供了6個位操作 運算子。這些運算子只能用於整型運算元,即只能用於帶符號或無符號的char,short,int與long型別。c語言提供的位運算子列表 運算子 含義 描述 按位與 如果兩個相應的二進位制位都為1,則該位...