簡體   English   中英

如何在c中切換數字的替代位

[英]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;
}

您可以將其更改為intlong

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM