[英]how to toggle the alternative bits of number in c
我想知道如何在一個數字中切換替代位?
例如,如果數字是1100 1001,則結果應為1001 1100
使用交替位掩碼進行XOR'ing:
11001001 ^ 01010101
int a1= 0xA9, // 1100 1001
a2= 0x9A; // 1001 1100
int mask= a1 ^ a2; // the toggling mask
// (bits different between a1 and a2)
int test= a1 ^ mask;
printf("mask= %02x, test= %02x\n", mask, test);
嘗試這個:
char toggleOddBits(char number)
{
for(int bitPos = sizeof(number) * 8 - 1 ; bitPos >= 0 ; bitPos--) {
// If bit position is odd
if ( 0 == (bitPos % 2)) {
number ^= 1 << bitPos; // Toggle bit at bitPosition
}
}
return number;
}
您可以將其更改為int
或long
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.