-7

我希望将 0x030C30C3 和 0x09249249 之类的数字转换为位。我怎样才能做到这一点?

4

2 回答 2

5

二进制表示可以通过以下方式轻松访问和操作std::bitset

std::bitset<32> var(0x030C30C3);

std::cout << var; // binary representation
于 2013-05-02T15:16:32.087 回答
0

如果您想查看一个简单的算法来显示如何进行“转换”,那么这里是一个:

#include <iostream>

void num2bin(uint32_t num)
{
    uint32_t mask = 1 << 31;
    for (int i = 0; i < 32; i++)
    {
        if (num & mask)
            std::cout << 1;
        else
            std::cout << 0;
        mask >>= 1;
    }
}

int main(int argc, char *argv[])
{
    uint32_t num = 0x030C30C3;

    num2bin(num);
}
于 2013-05-02T15:31:54.920 回答