c语言中的基数转换
base conversion in c programming language
有人能指出这段代码有什么问题吗?我正在尝试编写一个简单的(不使用数组和类似的东西)程序,将以 10 为基数的数字转换为任何其他基数。我是初学者,刚开始用 C 编写代码。
PS:如您所见,我没有编写任何会反转结果的内容,而且我没有收到编译器的任何输出。它停止工作了。
main()
{
int a,b,c;
printf("Please enter a number in base 10: ");
scanf("%d",&a);
printf("\nPlease enter the base that you want the number to be converted to: ");
scanf("%d",&b);
do
{
c=a%b;
printf("%d",c);
a/=b;
}while(c!=0);
}
将您的 while 循环更改为 != 0。您想循环直到将输入数字减少为零。当第一个数字为 0 时,您的代码将终止。
将任何底数转换为底数 10:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
char input[23];
int sum;
int power;
int base;
int val;
int len;
gets(input);
strupr(input);
scanf("%d",&base);
len=strlen(input);
power=len-1;
for(int x=0;x<len;x++,power--)
{
val=input[x]-48;
if(val>9)
val-=7;
sum+=val*pow(base,power);
}
printf("%d",sum);
}
有人能指出这段代码有什么问题吗?我正在尝试编写一个简单的(不使用数组和类似的东西)程序,将以 10 为基数的数字转换为任何其他基数。我是初学者,刚开始用 C 编写代码。
PS:如您所见,我没有编写任何会反转结果的内容,而且我没有收到编译器的任何输出。它停止工作了。
main()
{
int a,b,c;
printf("Please enter a number in base 10: ");
scanf("%d",&a);
printf("\nPlease enter the base that you want the number to be converted to: ");
scanf("%d",&b);
do
{
c=a%b;
printf("%d",c);
a/=b;
}while(c!=0);
}
将您的 while 循环更改为 != 0。您想循环直到将输入数字减少为零。当第一个数字为 0 时,您的代码将终止。
将任何底数转换为底数 10:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
main()
{
char input[23];
int sum;
int power;
int base;
int val;
int len;
gets(input);
strupr(input);
scanf("%d",&base);
len=strlen(input);
power=len-1;
for(int x=0;x<len;x++,power--)
{
val=input[x]-48;
if(val>9)
val-=7;
sum+=val*pow(base,power);
}
printf("%d",sum);
}