c語言位操作

2021-07-04 06:30:46 字數 1029 閱讀 7060

:位運算:

and與(&

):有一位為0

,運算就為0

:想獲取高四位,a=a&0xf0(

簡寫:a&=0xf0;)

清零:一三五七位清零:a=a&0x55;

檢測位:檢測第三位:a=a&0x04;

遮蔽高四位,保留低4

位:a=a&0x0f

統計2進製a中1的個數:

1	#include2	int main()

3 11 printf("%d\n",count);

12 return 0;

13 }

or

活(|):

只要有一位為1

,結果就為1

將低7位置為1

:a=a&0x7f;

xor異或(^):

兩個同時為1

或0時,值為0

,否則為1

crc校驗,加密,^0:

保持,^1:翻轉a

的值清為0

:a=a^a;

翻轉某一位:a

低四位反**a=a^0x0f;

保留原值:當乙個位與『0』

異或運算時,保留原值,

a高四位不變,低四位反**a=a^0x0f

交換a,b的值:

1	#include2	int main()

3

not非(~):

單目運算子右結合性

<<

左移:高位丟棄,低位補0

,相當與*2

;a=3(00000011);a<<4 ==48(0011,0000);

>>

右移:高位補0

,低位丟棄,相當與/2

;a=48(00110000);a>>3 ==6(0000 0110);

把32位數每位倒置輸出:1-32 2-31 互相交換:以八位為例:

#includeint  main()

C語言位操作

在電腦程式中,資料的位是可以操作的最小資料單位,理論上可以用 位運算 來 完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做資料變換使用,但是,靈活的位操作可以有效地提高程式執行的效率。c語言提供了位運算的功 能,這使得c語言也能像組合語言一樣用來編寫系統程式。位運算子c語言提供了六種位運算...

C語言位操作

朱老師物聯網大講堂 學習筆記 1 位與 只有1 1才是1,其餘全是0,位或 只有0 0才是0,其餘全是1,位取反 按位操作,位異或 1 0 1 0 1 1,也就是說相異結果是1,與1異或會取反,與0異或無變化,移位分 左 右 移,物件分 有 無符號數,只說一點 有符號數右移左側補符號位,叫算術移位,...

C語言位操作

左移 右端補零,操作的物件是 任意 int char 這裡任意是指有無符號的意思。右移 無符號數或者是正數不用考慮是左端補0,負數看實現 一些實現補0,一些保留符號位,這種比較科學吧 按位取反 一元運算子 按位與 按位異或 按位或 為了保證可移植性,暫存器當然用unsinged char 或者uns...