#include <stdio.h>
#include <string.h>
int fun(char *str)
{
char *s = str + 2;//跳过0X
int num = strlen(s) - 1;//获取当前的长度后减1
int sum = 0;
int sum1 = 0;
for(int i = num; i >= 0; i--)
{
switch(s[num - i])//从高位获取它的值
{
case '0': sum = 0;break;
case '1': sum = 1;break;
case '2': sum = 2;break;
case '3': sum = 3;break;
case '4': sum = 4;break;
case '5': sum = 5;break;
case '6': sum = 6;break;
case '7': sum = 7;break;
case '8': sum = 8;break;
case '9': sum = 9;break;
case 'a': sum = 10;break;
case 'b': sum = 11;break;
case 'c': sum = 12;break;
case 'd': sum = 13;break;
case 'e': sum = 14;break;
case 'f': sum = 15;break;
case 'A': sum = 10;break;
case 'B': sum = 11;break;
case 'C': sum = 12;break;
case 'D': sum = 13;break;
case 'E': sum = 14;break;
case 'F': sum = 15;break;
}
for(int j = 1; j < i+1; j++)//根据位数转化为10进制
{
sum *= 16;//高一位等于低一位的16
}
sum1 += sum;//每一位的十进制相加
}
return sum1;//返回最终结果
}
int main()
{
printf("%d \n", fun("0x122f"));
return 0;
}
C语言 16进制转化为10进制
最新推荐文章于 2024-04-17 10:45:00 发布