C 位運算詳解

2022-01-12 14:52:56 字數 1026 閱讀 3299

運算子

描述&(位與)

當兩個二進位制操作位都為1時,結果就為1

|(位或)

當兩個二進位制操作位有1個為1時,結果就為1

^(位異或)

當兩個二進位制操作位只有1個為1時,結果為1

~(位非)

操作位的每個位都取反(就是0變成1,1變成0)

<

二進位制左移運算子。左運算元的值向左移動右運算元指定的位數。

>>(右移)

二進位制右移運算子。左運算元的值向右移動右運算元指定的位數。

pq例項圖pq

p & q

p | q

p ^ q00

0000

1011

1111

0100

11如下 :

int x=12,y=10;

int a;

a=x&y; //a=8

下面是計算試子的和加減法一樣

二進位制的個位,十位,百位,千位,分別對應的是1,2,4,8 二進位制每多一位只需要乘2 那個個位置有1 就加上該位置的十進位制數 。

上面說&運算時,當兩個二進位制操作位都為1時,結果就為1

看個位 0&0 =0  十位 0&1=0   百位 1&0=0 千位1&1=1 

換下來就是 1000(二進位制) =8(十進位制) 12&10=8

12|10,12^10 可以試著就算這個值

位非怎麼運算呢?

~12  直接位數取反 0變1,1變0 二進位制左端1是位負數  在取反上-1

~12=-13; 

要獲取他12的相反數 二進位制表示 也是 取反 但是在結果上加1

左/右移  左移對移玩的位置補0 14<<3  二進位制就是 1110>>1110 000 

就是 14x2x2x2=112  14<<3=112

右移 切記負數右移是錯誤的 因為乙個負數無論如何除2都不會乘位乙個正數  14>>3=1

C 位運算詳解

以前收藏過一篇講c 位操作的文章,這次部落格搬家,以前的資料都沒有保留,整理谷歌 管理後台的時候,發現不時的還有有在查詢這篇文章。所以,瘋刀也來弄個簡單的教程,講講位操作的用途和魅力吧。位是資料儲存的最小單位。在 計算機中的二進位制數系統中,位,簡記為b,也稱為位元,每個0或1就是乙個位 bit 我...

C 位運算詳解

位是資料儲存的最小單位。在 計算機中的二進位制數系統中,位,簡記為b,也稱為位元,每個0或1就是乙個位 bit 我們先來看看位運算操作符 按位與 按位或 按位異或 按位取反 按位右移 按位左移 1 按位與 從概念上來講,就是將參與運算的兩個分量對應的每一位來做邏輯與運算,若兩者都為真 等於1 則結果...

C 位運算詳解

位是資料儲存的最小單位。在計算機中的二進位制數系統中,位,簡記為b,也稱為位元,每個0或1就是乙個位 bit 我們先來看看位運算操作符 按位與 按位或 按位異或 按位取反 按位右移 按位左移 1 按位與 從概念上來講,就是將參與運算的兩個分量對應的每一位來做邏輯與運算,若兩者都為真 等於1 則結果才...