进制变换
进制转换
http://www.nowcoder.com/questionTerminal/8f3df50d2b9043208c5eed283d1d4da6
#include <stdio.h>
#include <stdlib.h>
#include<math.h>
int exchange (char * a);
int main()
{
char a[100];
while (scanf("%s", a) != EOF) //(多组同时输入 )w我觉得这个的意思是在缓冲区里面,有0xA 0x76C 0x1 等等什么什么的,所以必须得用scanf("%s")
{
int val = exchange(a);
printf("%d\n", val); //它里面必须得放变量,不可以放函数,即使函数是有返回值的。
}
return 0;
}
int exchange (char * a)
{
int i = 0, len = 0, sum = 0;
len = strlen(a);
for (i=2; i<len; i++)
{
if ((int)a[i] < 65)
sum += ((int)a[i] - 48)*pow(16, (len-i-1)); // '1'的强制类型转换并不是 1 ,而是他的ascii 49
else
sum += ((int)a[i] - 55)*pow(16, (len-i-1));
}
return sum;
}
