#二进制转换
要求:32位机器,输入数字不考虑负数。
这里我们只谈代码(初学者适用):
//转换二进制,num [0~36327]
#include<stdio.h>
//不会补全
void Convertbinary1 (int num)
{
if(num==0)
{
printf("0");
}
while(num)
{
if(num%2)
printf("1");
else
printf("0");
num/=2;
}
return ;
}
//针对32位机器 可以补全
void Convertbinary2 (int num)
{
for(int i=30; i>=0 ; i--)
{
int refernumber = (1<<i);
if((num&refernumber)!=0)
{
printf("1");
}
else
{
printf("0");
}
}
return ;
}
int main()
{
int num;
scanf("%d",&num);
Convertbinary1(num);
printf("\n");
Convertbinary2(num);
return 0;
}
这里提供了两种方式,分别是补全与不补全
其中涉及了位运算,以及数的范围。
这里代码是对于32位机器 可以计算范围是【0,32767】
同样这里代码比较简单,对于二进制的形式与运算要加强练习。
以上仅供参考,如有错误,感谢指正!