|
发表于 2018-3-18 12:07:12
|
显示全部楼层
- #include <stdio.h>
- #include <math.h>
- #include <string.h>
- //输入十六进制数,转换成十进制
- #define MAX 30
- int hex(char array[]); //进制转换
- int main(void)
- {
- char number[MAX]; //存放合法的十六进制数字
-
- printf("请输入一个十六进制数:");
- scanf("%s", number);
-
- printf("十六进制的 %s 转换成十进制为 %d \n", number, hex(number));
-
-
-
- getch();
- return 0;
- }
- int hex(char array[MAX])
- {
- int i, j; //循环变量
- int sum = 0; //获取最终结果
- int len; //获取该数组的长度
- int temp; //获取每个字符的转换成十进制后的值
- len = strlen(array);
-
- for(i = len-1, j=0; i >= 0; i--, j++)
- {
- if(array[i] <= '9')
- {
- temp = array[i] - '0';
- }
- else if(array[i] >= 'A' && array[i] <= 'F')
- {
- temp = array[i] - 'A' + 10;
- }
- else if(array[i] >= 'a' && array[i] <= 'f')
- {
- temp = array[i] - 'a' + 10;
- }
-
- sum += temp*pow(16, j);
- }
-
- return sum;
- }
复制代码 |
|