将十六进制数转换成十进制数

xiaoxiao2021-02-28  339

将十六进制数转换成十进制数。

思路:

1、取低位数;

2、将低位数转换成相应的十进制数,,如A~10,C~12;

3、将转换的十进制数乘以16的n次方;

4、相加。

#include <stdio.h> #include <string.h> #include <math.h> int fun (char ch) { int a; switch (ch) { case 'A': return 10; //A~F单独转换 case 'B': return 11; case 'C': return 12; case 'D': return 13; case 'E': return 14; case 'F': return 15; default : a = (int)(ch - '0'); //0~9强制转换成int型 return a; } } int trans (char *str) { int len = strlen (str); int i, num; int j = 0; int sum = 0; for (i = len - 1;i >= 0; i--) { char ch = str[i]; //取低位数转换 num = fun (ch); sum += num * pow(16,j); //转换成十进制数 j++; } return sum; } int main() { printf ("将十六进制转换为十进制\n"); char str[100]; scanf ("%s",str); int sum = trans (str); printf ("%d\n",sum); return 0; }

转载请注明原文地址: https://www.6miu.com/read-60557.html

最新回复(0)