C 位操作技巧

2021-06-18 19:32:08 字數 776 閱讀 8673

一、注意事項:

a、與:&,兩位都為1,才為1;

b、或:|,兩位都為0,才為0;

c、微操作只能用於整形資料,float和double進行位操作時編譯器會報錯;

d、異或:^,兩位相同為0,不同為1;

e、取反:~,1變為0,0變為1;

f、左移:<<,各二進位制全部向左移位,高位丟失,低位補零;

g、右移:>>,各二進位制全部向右移位,對於無符號數,低位丟失,高位補零;有符號數個編譯器不同,有的補符號位,有的補0;

二、技巧用途:

1、判斷奇偶:

只要判斷二進位制最末尾是0還是1即可判斷,為0則是偶數,為1則為奇數;因此用if(a & 1) == 0代替if(a%2 == 0)來判斷a是不是偶數。

輸出1到100所有的奇數:

if(i = 0; i < 100; i++)

if(i&1)

printf("%d ", i);

2、交換兩個數(整形的)

void swap(int &a, int &b)
3、變換符號:

整數變複數,複數變正數;操作是,對整數取反加1;

int signlreverse(int a)
4、求絕對值:

方法一:

int abs(int a)
方法二:

int abs(int a)

C 位操作技巧

一 注意事項 a 與 兩位都為1,才為1 b 或 兩位都為0,才為0 c 微操作只能用於整形資料,float和double進行位操作時編譯器會報錯 d 異或 兩位相同為0,不同為1 e 取反 1變為0,0變為1 f 左移 g 右移 各二進位制全部向右移位,對於無符號數,低位丟失,高位補零 有符號數個...

C語言位操作技巧

c語言位操作 2017年06月04日 16 51 00 閱讀數 1553 此文將花費您8 15分鐘時間,帶您對嵌入式中常用的位操作有個了解。和數位電路有點相似!感謝閱讀!位操作符 1.位與 1 注意 位與符號是乙個 兩個 是邏輯與。2 真值表 1 0 01 1 10 0 00 1 0 3 從真值表可...

位操作技巧

檢測乙個無符號數是不為2 n 1 為冪 x x 1 將最右側0位改為1位 x x 1 二進位制補碼運算公式 x x 1 x 1 x x 1 x x 1 x x 1 x y x y 1 x y x y x y x y 1 x y x y x y x y x y x y x y y x y x y x ...