位運算(針對整型、字元型,計算機會將它轉換為二進位制運算)
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...