C语言十六进制转十进制
时间: 2023-11-17 07:06:27 浏览: 87
C语言实现十六进制数据转十进制数据
C语言中可以使用循环和条件语句来实现十六进制转十进制的功能。具体实现方法如下:
1. 遍历输入的十六进制数字串,记录其中十六进制数的个数,非十六进制数不计在内。
2. 遍历输入的十六进制数字串,将每个十六进制数转换成对应的十进制数。
3. 将每个十进制数乘以16的n-1次方(n为该十六进制数在数字串中的位置),并将所有结果相加,即可得到最终的十进制数。
下面是一个示例代码:
```
#include <stdio.h>
#include <string.h>
void conversion(char str[]) {
int i = 0, j = 0, num = 0, sum = 0, len = 0;
while ((str[i] >= 'a' && str[i] <= 'f') || (str[i] >= 'A' && str[i] <= 'F') || (str[i] >= '0' && str[i] <= '9')) {
len++;
i++;
}
i = 0;
while (str[i] != '\0') {
if (str[i] >= '0' && str[i] <= '9') {
num = str[i] - '0';
} else if (str[i] >= 'a' && str[i] <= 'f') {
num = str[i] - 'a' + 10;
} else if (str[i] >= 'A' && str[i] <= 'F') {
num = str[i] - 'A' + 10;
} else {
break;
}
for (j = 0; j < len - 1; j++) {
num = num * 16;
}
sum += num;
i++;
len--;
}
printf("%d\n", sum);
}
int main() {
char str[100];
scanf("%s", str);
conversion(str);
return 0;
}
```
阅读全文