关于按位与&和逻辑右移>>
求一个数的二进制的时候,可以采用这种方法,向右移一位,相当于除以二,所以有以下代码:
#include<stdio.h>
//求一个数的二进制
int main()
{
char arr[32];
int num=0;
int i=0;
printf("请输入一个数字:");
scanf("%d",&num);
for(i=0;i<32;i++)
{
arr[i]=(num>>i)&1;
}
for(;i;i--)
{
printf("%d",arr[i-1]);
}
return 0;
}
当然还有除以二取余的办法:
#include<stdio.h>
#define n 32
//求一个数的二进制
int main()
{
unsigned int num = 0;
int count = 0;
int i;
int arr[n];
printf("请输入一个数字\n");
scanf("%d",&num);
printf("%d的二进制数为:",num);
for (i=0;i<n;i++)
{
arr[i]=num%2;
num=num/2;
}
for (i=n;i;i--)
{
printf("%d",arr[i-1]);
}
return 0;
}