16进制转10进制单片机 c程序
时间: 2023-08-28 08:10:52 浏览: 136
浮点数与16进制转换(含源代码)_单片机_浮点数_转换_十六进制_实数_
5星 · 资源好评率100%
要在C程序中将16进制转换为10进制,可以使用以下代码作为参考:
```c
#include <stdio.h>
int hexToDec(char *hex) {
int dec = 0;
int i = 0;
while(hex\[i\] != '\0') {
int digit;
if(hex\[i\] >= '0' && hex\[i\] <= '9') {
digit = hex\[i\] - '0';
} else if(hex\[i\] >= 'a' && hex\[i\] <= 'f') {
digit = hex\[i\] - 'a' + 10;
} else if(hex\[i\] >= 'A' && hex\[i\] <= 'F') {
digit = hex\[i\] - 'A' + 10;
} else {
// 非法的16进制字符
return -1;
}
dec = dec * 16 + digit;
i++;
}
return dec;
}
int main() {
char hex\[50\];
printf("请输入16进制数:");
scanf("%s", hex);
int dec = hexToDec(hex);
if(dec == -1) {
printf("输入的16进制数不合法");
} else {
printf("转换为10进制:%d", dec);
}
return 0;
}
```
这段代码定义了一个`hexToDec`函数,它接受一个字符串参数,表示要转换的16进制数。函数内部使用循环遍历字符串的每个字符,并根据字符的值计算出对应的10进制数。最后,将转换后的10进制数打印出来。
请注意,这段代码假设输入的16进制数是合法的,如果输入的16进制数包含非法字符,将返回-1。你可以根据需要进行错误处理。
#### 引用[.reference_title]
- *1* *2* [C语言:十进制、十六进制数据互换](https://blog.csdn.net/m0_38106923/article/details/120000137)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [(C语言)16进制转10进制](https://blog.csdn.net/meridian002/article/details/87521538)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文