16进制转10进制C语言单片机
时间: 2024-09-30 12:00:19 浏览: 56
lcd-89cs450,c语言16进制转2进制源码,c语言项目
在C语言单片机中,将16进制数转换为10进制可以利用`hex`函数或通过循环逐位相加的方式来实现。下面是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
// 单片机常用的16进制到10进制转换函数
unsigned int hex_to_decimal(const char *hex_str) {
int decimal = 0;
int len = strlen(hex_str);
for (int i = 0; i < len; i++) {
if (hex_str[i] >= '0' && hex_str[i] <= '9') { // 阿拉伯数字(0-9)
decimal += hex_str[i] - '0';
} else if (hex_str[i] >= 'A' && hex_str[i] <= 'F') { // 大写字母(A-F)
decimal += hex_str[i] - 'A' + 10;
} else if (hex_str[i] >= 'a' && hex_str[i] <= 'f') { // 小写字母(a-f)
decimal += hex_str[i] - 'a' + 10;
}
}
return decimal;
}
int main(void) {
const char *hex = "FF"; // 例如输入一个16进制数 FF
unsigned int decimal_value = hex_to_decimal(hex);
printf("16进制 %s 转换为10进制为:%u\n", hex, decimal_value);
return 0;
}
```
在这个例子中,`hex_to_decimal`函数接受一个字符串形式的16进制数,然后遍历每个字符,根据其在16进制中的位置计算对应的十进制值,并累加。
阅读全文