位運算應用

2021-07-26 14:36:32 字數 853 閱讀 6793

位運算(針對整型、字元型,計算機會將它轉換為二進位制運算)

1、按位與:x&y  對應位都為1時才為1

用途:取、保留1個數的某位(對應掩碼的對應位為1),其餘各位置1

2、按位或:x|y 對應位都為0才為0,否則為1

用途:將1個數的某些位置1,其餘不變

3、按位異或:x^y  對應位相同為0,不同為1

用途:使1個數某些位取反

4、按位取反:~x  

用途:間接構造乙個數,增強可移植性

5、按位左移:x<<  各位左移,低位補0,高位溢位

6、按位左移:x>>  各位右移,移出的低位捨棄

高位:(1)對無符號數和有符號中的正數補0

(2)有符號的負數,取決於系統,補0的稱為「邏輯右移」,補1的稱為「算術右移」

程式應用:

1、請編寫乙個c函式,該函式給出乙個位元組中被置為1的位的個數

#include

int main()

ch <<= 1;

if(i  == 4)

putchar(',');

}printf("\n");

printf("%d\n",len);

return 0;

}注意:mask = 1 <<7; putchar(ch & mask ? '1' : '0');ch <<= 1;的應用

2、輸入乙個整數a,再輸入兩個整數p1,p2(p1,p2<32),輸出該整數的二進位制表示方法中從右端開始的p1到p2位.

#include

int main()

printf("\n");

return 0;

}注意:mask = ~(~0 << p1);的應用

位運算應用

1.判斷乙個數的奇偶性。x 1 101 1 1 2.判斷x是否是2的正整數冪。x x 1 100 011 0 3.取出乙個數的某些二進位制位。3.1.x 1 d 1 10101 1 3 1 00100 取第d位 3.2.x 1 d 1 10101 1 3 1 00101 取最後d位,x對2 d取模 ...

位運算應用

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

位運算應用

負數以其正值的補碼形式表示 1 任何乙個數和0異或是它的本身,和自身異或為0 a 0 a a a 0 利用上述性質,可以用來計算2個數的交換。大家應該知道,在計算機裡,兩個數互相交換,需要定義乙個中間的變數來參與交換。如 int tmp int a 10 int b 20 tmp a a b b t...