int main(int argc,const char * argv[])
{
// for (int i = 1; i <= 9 ; i++) {
// printf("\n");
// for (int j = 1; j <= i; j++) {
// printf("%d * %d = %d;",i,j,i*j );
// }
// }
//十六进制转换十进制
while (1) {
//十进制总和
double arl = 0;
//
double ints[10];
ints[0] =1;
for (int i =1; i < 10; i++) {
ints[i] = ints[i-1] *16;
}
//输入十六进制数
char b[999] ;
printf("警告:输入只能在1234567890和ABCDEF之间输入,L为结束表示符。\n");
printf("请输入一个十六进制的数:");
scanf("%s",b);
//元素个数
int v = 0;
for (int i =0; 'L' != b[i]; i++) {
v++;
}
//倒序存储
for (int i =0; i < v/2; i++) {
printf("%d===",v);
int as;
if (v%2 == 0) {
printf("0000000");
as = (v/2)*2 - i-1;
}else {
as = (v/2)*2 - i;
}
printf("%d===",as);
//ASDC(&b[i], &b[as]);
char a[1];
a[0] = b[i];
b[i] = b[as];
b[as] = a[0];
//printf("%c--",a[0]);
//printf("%c--",b[i]);
//printf("%c--",b[as]);
}
//测试倒序
for (int i =0 ; i < v; i++) {
printf("\n--%c\n",b[i]);
}
// 转换十进制
for (int i =0; 'L' != b[i]; i++) {
// printf("%c",b[i]);
switch (b[i]) {
case '1':
arl = arl +1 * ints[i];
break;
case '2':
arl = arl +2 * ints[i];
break;
case '3':
arl = arl +3 * ints[i];
break;
case '4':
arl = arl +4 * ints[i];
break;
case '5':
arl = arl +5 * ints[i];
break;
case '6':
arl = arl +6 * ints[i];
break;
case '7':
arl = arl +7 * ints[i];
break;
case '8':
arl = arl +8 * ints[i];
break;
case '9':
arl = arl +9 * ints[i];
break;
case 'A':
arl = arl +10 * ints[i];
break;
case 'B':
arl = arl +11 * ints[i];
break;
case 'C':
arl = arl +12 * ints[i];
break;
case 'D':
arl = arl +13 * ints[i];
break;
case 'E':
arl = arl +14 * ints[i];
break;
case 'F':
arl = arl +15 * ints[i];
break;
default:
break;
}
}
printf("\n十进制输出:%f\n",arl);
}