1.编程,将一个十进制转换成任意机制
#include <stdio.h>
void main(){
int i=0,base,n,j,num[20];
char k[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
printf("请输入一个十进制数:\n");
scanf("%d",&n);
printf("请输入要转换的进制数:\n");
scanf("%d",&base);
do{
i++;
num[i]=n%base;
n=n/base;
}while(n!=0);
for(j=i;j>=1;j--){
printf("%c",k[num[j]]);
}
}
2.输入一个十六进制数,输出相应的十进制数
#include <stdio.h>
#define MAX 1000
void main()
{
int htoi(char s[]);
int c,i,flag;
char t[MAX];
i=0;
flag=0;
printf("input a HEX number:");
while((c=getchar())!='\0' && i<MAX)
{
if (c>='0' && c<='9'||c>='a' && c<='f'||c>='A' && c<='F')
{ flag=1;
t[i++]=c;
}
else if (flag)
{
t[i]='\0';
printf("decimal number %d\n",htoi(t));
}
}
}
int htoi(char s[])
{
int i,n;
n=0;
for (i=0;s[i]!='\0';i++)
{
if (s[i]>='0'&& s[i]<='9')
n=n*16+s[i]-'0';
if (s[i]>='a' && s[i]<='f')
n=n*16+s[i]-'a'+10;
if (s[i]>='A' && s[i]<='F')
n=n*16+s[i]-'A'+10;
}
return(n);
}