通过不断让数字和0x80000000进行&运算
和让数字二进制左移的方式来不断打印‘0’,‘1’
以此来实现整数二进制形式的打印。
十六进制80000000其实就是二进制的
10000000000000000000000000000000
打印出的其实是数字的补码形式。
代码如下
#include<stdio.h>
void bitprint(int x)
{
unsigned int c=0,a=0x80000000;//令
for (int i = 1; i <= 32; i++)
{
c = 0;
c = x & a;
if (c == 0)
printf("0");
else printf("1");
x=x << 1;
}
}
int main()
{
int x=0;
scanf_s("%d", &x);
bitprint(x);
return 0;
}