题解 | #进制转换#
进制转换
http://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
//0xAAA = 10*2^(4*2)+10*2^(4*1)+10*2^(4*0)
int main()
{
char HEX[20] = { 0 };
scanf("%s", HEX);
int DEC = 0;
for (int i = 2; i < strlen(HEX); i++)
{
// printf("HEX[%d]=%d\n",i, HEX[i]);
if (HEX[i] >= 65 && HEX[i] <= 70) //输入为英文字母
{
DEC += (HEX[i] - 55) * pow(2, 4 * (strlen(HEX)-i - 1));
}
else if (HEX[i] >= 49 && HEX[i] <= 57)//输入为阿拉伯数字
{
DEC += (HEX[i] - 48) * pow(2, 4 * (strlen(HEX) - i - 1));
}
// printf("%d\n", DEC);
}
printf("%d", DEC);
}

