如何将整数转换为32位二进制等效值

时间:2015-02-23 20:44:06

标签: c

我试图翻转设置位的二进制位将被取消设置,反之亦然。就此而言,我首先需要知道如何将整数值转换为32位二进制值。

2 个答案:

答案 0 :(得分:0)

我猜没有直接的功能。您可以使用Bitwise运算符处理int的二进制,但要在数组中获取二进制表示,您需要编写自己的函数。它会很简单。

答案 1 :(得分:0)

您可以使用左移运算符:

/* A 1 in the left-most bit, 0's everywhere else */
#define MASK 0x80000000
...
for (i = 0; i < 32; i++)
{
    printf(num & MASK ? "1" : "0");
    num << 1;
}

当然你应该考虑在不同的机器上,整数可能不是32位。

在每次迭代中,通过执行二进制和MASK来测试最左边的位数是否为1。如果结果不为零,则打印1,否则为0。