關於位運算常用的幾個函式實現

2021-09-13 13:48:38 字數 903 閱讀 7255

關於位運算的幾個函式實現:

1.位反轉(32位)

函式功能:將n的二進位制位模式從左至右變換

實現方法:先將n右移的數字與1若不為0,則將tmp或上該位左移31-i位,得到新的二進位制數字實現位的反轉

unsigned int bit_reverse(unsigned int n)

} return tmp;

}

2.位置1

函式功能:將ch的二進位制右數第n位置1

實現方法:先判斷輸入n是否超過輸入範圍,然後將ch或上*ch |= 1<<(n-1)即可實現ch右數第n位置1功能

bool setbit(char *ch,int n)//0101 0010   ,3->0101 0110

*ch |= 1<<(n-1);

return true;

}

3.位清零

函式功能:將ch的二進位制右數第n位清零

實現方法:先判斷輸入n是否超過輸入範圍,然後將ch與上 ~(1<<(n-1))即可實現ch右數第n位清0功能

bool clearbit(char *ch,int n)//0101 1010,2->0101 1000

*ch &= ~(1<<(n-1));

return true;

}

4.獲取第n位的值

函式功能:獲取ch二進位制中右數第n位的值

實現方法:先判斷輸入n是否超過輸入範圍,然後將ch右移n-1位後的二進位制數與上1即可確定該位的值

int getbit(char ch,int n)//0101 1010,2->1

return (ch>>(n-1))&1;

}

C語言 位運算常用函式實現

如圖 將該二進位制數進行反轉。解決 位運算反轉 unsigned intreversbit unsigned int n n 1 處理完1位丟掉1位 return m 任意給乙個位元組,將其右數第bit位設定為1。例如 為將50的第右數第3位變為1。解決 將乙個位元組ch的右數第bit位設定為1,b...

幾個常見的位運算

程式中的所有數在計算機記憶體中都是以二進位制的形式儲存的。位運算就是直接對整數在記憶體中的二進位制位進行操作。and運算 and運算通常用於二進位制的取位操作,例如乙個數 and 1的結果就是取二進位制的最末位。這可以用來判斷乙個整數的奇偶,二進位制的最末位為0表示該數為偶數,最末位為1表示該數為奇...

常用的位運算

1 按位與 0 0 0 0 1 0 1 0 0 1 1 1 同時為1則結果為1,否則為0 如3 8 3 00000011 5 00000101 結果為 00000001 2 按位或 0 0 0 0 1 1 1 0 1 1 1 1 兩個數中只要有乙個為1,則結果為1 同時為0 則結果為0 3 異或 兩...