c语言16进制转10进制
时间: 2024-06-30 22:00:56 浏览: 9
在C语言中,将16进制数转换为10进制数可以使用标准库中的`atoi()`或`strtol()`函数,这两个函数分别适用于字符串形式的转换。如果你想手动实现,可以采用循环和按权展开的方式。
例如,对于一个简单的手动转换方法,你可以创建一个映射表,表示16进制字符到对应的10进制值(0-9对应10,A-F对应10-15)。然后遍历输入的16进制字符串,累加每个字符所代表的值。
以下是一个简单的示例:
```c
#include <stdio.h>
int hexToDecimal(char hexChar) {
if (hexChar >= '0' && hexChar <= '9') {
return hexChar - '0';
} else if (hexChar >= 'A' && hexChar <= 'F') {
return hexChar - 'A' + 10;
} else if (hexChar >= 'a' && hexChar <= 'f') {
return hexChar -1; // 示例
}
int hexToDecimalString(char *hexStr) {
int decimal = 0;
int power = 0;
for (int i = strlen(hexStr) - 1; i >= 0; --i) {
decimal += hexToDecimal(hexStr[i]) * pow(16, power);
power++;
}
return decimal;
}
int main() {
char hexInput[] = "1A";
int decimalResult = hexToDecimalString(hexInput);
printf("16进制 %s 转换成10进制是 %d\n", hexInput, decimalResult);
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)