二进制转十进制程序如下:
思路:判断二进制的每一位是否为“1”,若是“1”,加上该位对应的2的倍数。
#include<stdio.h>
int main()
{
long num,a=10,b=1,add=0;
printf("输入的二进制数为:");
scanf("%d",&num);
while(num!=0)
{
add=add+(num%a ? b : 0);
num=num-num%a;
a=a*10;
b=b*2;
}
printf("输出的十进制数为:%d\n",add);
}
十进制转二进制程序如下:
#include<stdio.h>
int main()
{
long num,binNum=0,a=1;
printf("输入的十进制数为:");
scanf("%d",&num);
while(num!=0)
{
binNum+=(num%2)*a;
num=num/2;
a*=10;
}
printf("输出的二进制数为:%d\n",binNum);
}