在编写代码的过程中,往往我们会用到一个数的二进制形式来对比分析,但C语言并没有什么库函数提供了这样的功能,虽然我们可以通过一些强大的编译器(如VisualStudio)在调试的过程中查看内存中存放的数据,但始终没有直观的打印出来方便的多。那么需求有了,如何实现呢?请看代码:
代码语言:javascript复制#include <stdio.h>
#include <stdlib.h>
void binaryInt(int var)
{
int i = 32;
while (i–)
{
// << 运算符优先级高于 & 运算符
// 1 依次根据循环想左位移 i 位
// 当位移到与var二进制数据某些为1的位置重合时,&运算后返回1
if (var & 1 << i)
printf(“1”);
else
printf(“0”);
if (i % 8 == 0)
printf(“ “);
}
putchar(10);
}
int main(int argc, char* argv[])
{
binaryInt(100);
binaryInt(1 << 31);
system(“pause”);
return 0;
}