C语言编程练习之二进制与十进制相互转换
二进制转换为十进制:
#include <stdio.h>
#include <math.h>
int main()
{
long long x;
printf("输入一个二进制数:\n");
scanf("%lld", &x);
int b=convert(x);
printf("二进制数 %lld 转换为十进制为 %d", x, b);
return 0;
}
int convert(long long x)
{
int decimalNumber = 0, i = 0, j;
while (x!=0)
{
j = x%10;
x /= 10;
decimalNumber += j*pow(2,i);
++i;
}
return decimalNumber;
}
结果如下:
十进制转换为二进制:
思路:根据十进制转换为二进制的数学计算步骤和特点编程,十进制数不断除2取余数,最后组合形成二进制数。
#include <stdio.h>
#include <math.h>
int main()
{
int x;
printf("输入一个十进制数: ");
scanf("%d", &x);
printf("十进制数 %d 转换为二进制位 %lld", x, convert(x));
return 0;
}
long long convert(int x)
{
long long binaryNumber = 0;
int remainder, i = 1;
while (x!=0)
{
remainder = x%2;
x=x/2;
binaryNumber += remainder*i;
i = i*10;
}
return binaryNumber;
}
结果如下:
还没有评论,来说两句吧...