请写一端c语言代码,关于16进制转换为10进制的算法
时间: 2023-02-05 18:23:41 浏览: 156
好的,这是一段用于将 16 进制数转换为 10 进制数的 C 语言代码。这里假设输入的 16 进制数为字符串类型,并使用函数来实现转换:
```
#include <stdio.h>
#include <stdlib.h>
int hex_to_decimal(const char* hex) {
int len = strlen(hex);
int decimal = 0;
int base = 1;
for (int i = len - 1; i >= 0; i--) {
if (hex[i] >= '0' && hex[i] <= '9') {
decimal += (hex[i] - 48) * base;
base *= 16;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
decimal += (hex[i] - 55) * base;
base *= 16;
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
decimal += (hex[i] - 87) * base;
base *= 16;
}
}
return decimal;
}
int main() {
char hex[10];
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
printf("Decimal equivalent: %d\n", hex_to_decimal(hex));
return 0;
}
```
在这段代码中,我们首先定义了一个名为 `hex_to_decimal` 的函数,它接受一个字符串类型的参数,该参数表示要转换的 16 进制数。然后,我们使用一个循环来遍历这个 16 进制数的每一位,并使用一个 `base` 变量来记录当前位的基数。每遍历一位,就将该位的值乘以 `base`,然后将结果加到 `decimal` 变量中。最后,我们将 `base` 乘以 16,然后继续遍历下一位。在循环结束后,我们就可以返回 `decimal` 变
阅读全文