關於位運算的幾個函式實現:
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 異或 兩...