c语言怎么样实现6进制
把39转换为6进制:
#includestdio.h
void dec2n(int x,int n)
{if(x=n)dec2n(x/n,n);
printf(“%c”,x%n9?x%n+55:x%n+48);
}
int main()
{int x,n;
scanf(“%d%d”,x,n);
dec2n(x,n);
return 0;
}
请问 c语言的进制转换怎么写啊 , 比如 int a=6(十进制) 转换成八进制或16进制的的
#includestdio.h
int main()
{
int swap(int number[30],int x,int n);
int number[30],x,n,z,i;
printf(“进制转换请输入要转换的数值和进制(最大支持16进制)!\n”);
scanf(“%d%d”,x,n);
z=swap(number,x,n);
for(i=z-1;i=0;i–)
{
switch(number[i])
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:printf(“%d”,number[i]);break;
case 10:printf(“A”);break;
case 11:printf(“B”);break;
case 12:printf(“C”);break;
case 13:printf(“D”);break;
case 14:printf(“E”);break;
case 15:printf(“F”);break;
case 16:printf(“G”);break;
}
}
printf(“\n”);
}
int swap(int number[30],int x,int n)
{
int i=0;
while(x!=0)
{
number[i]=x%n;
x=x/n;
i++;
}
return i;
}
贴吧看到的 而且可行 你试试
6进制转化成10进制的c语言程序
说明一下两点:1:\在 c语言要用2个\\来表示,因为\是转义字符
2:数据大小不能超过int,否则溢出就出错了
#includestdio.h
#includestring.h
int get_num(char c){
switch(c){
case ‘%’: return 0;
case ‘)’: return 1;
case ‘~’: return 2;
case ‘@’: return 3;
case ‘?’: return 4;
case ‘\\’:return 5;
case ‘$’: return -1;
}
}
int f(char *begin){
char *p = NULL;
int n = strlen(begin);
int base = 1;
int ans = 0;
for(p = begin + n – 1; p = begin; p–){
ans += get_num(*p) * base;
base *= 6;
}
return ans;
}
int main(){
char str[999];
scanf(“%s”, str);
printf(“%d”, f(str));
return 0;
}