:位運算:
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...