1 //输入需要转换的数和进制数,将该数按该进制转换成对应进制数,输出结果。 
2 #include <stdio.h>
3 #include<stdlib.h>
4 int Conversion(int number,int system,char output[])//要转换的数据、进制、输出数据
5 {
6 int Quotient,Balance,i=0;//商,余数和标记
7 Quotient = number;
8
9 do
10 {
11 Balance = Quotient % system;
12 output[i++]=Balance;
13 } while (Quotient/=system);
14
15 for(int j=0;j<i;j++) // 将十进制数字转换为char型数值
16 if(output[j]>9)
17 output[j]=output[j]+55;
18 else output[j]+=48;
19
20 for(int k=0;k<i/2;k++) // 字符串取反
21 {
22 char tmp;
23 tmp=output[k];
24 output[k]=output[i-k-1];
25 output[i-k-1]=tmp;
26 }
27 return i;
28 }
29
30 int main(void)
31 {
32 char rec[1024]={0};
33 int num, sys;
34
35 printf("任意转换位数测试程序\t\t\tby candy\n");
36 printf("请输入一个数和要转换成的进制数:\t\t(如 12345 16)\n");
37 scanf("%d%d", &num,&sys);
38 int res = Conversion(num,sys,rec);
39
40 printf("结果为:\t%s\n",rec);
41 system("pause");
42 return 0;
43 }

 '0'+1='1'

 '0'+2='2'     .............. '0'+9='9'     字符'0'对应48,48=48+0     字符'A对应十进制65,65=55+10(A)

posted on 2011-12-03 21:28  candyming  阅读(560)  评论(0编辑  收藏  举报