關(guān)于C中的位操作,了解這么多就夠了

沒(méi)有對(duì)C語(yǔ)言中位的理解,你一定不會(huì)用std::bitset,如果理解里C中的位操作,就真心不必再使用std::bitset了

#include "iostream"
#include <iomanip>

void printBits(unsigned int value)
{
    constexpr int size = 8 * sizeof(unsigned);
    constexpr int mask = (1<<(size - 1));

    std::cout << std::setw(2);
    for(int i = 1;i <= size;++i)
    {
        std::cout << ((mask & value) ? '1' : '0');
        value <<= 1;
        if(i%8 == 0)
            std::cout <<' ';
    }
}

#define PRINT1(a) std::cout << std::setw(8) << #a" ="; \
        printBits(a); \
        std::cout << std::endl;


int main(int,char**)
{
    unsigned int a = 0xff;
    unsigned int b = 3;
    PRINT1(a);
    PRINT1(b);
    PRINT1(a&b);
    PRINT1(a|b);
    PRINT1(a^b);
    PRINT1(a&~b);
    PRINT1(a^=b);
    PRINT1(a^=b);
    return 0;
}

上面的程序的輸出如下:


view.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容