51单片机用c语言把16进制转为10进制
时间: 2023-09-20 15:08:43 浏览: 447
以下是51单片机用C语言将16进制转换为10进制的代码示例:
```c
#include <reg51.h>
unsigned char hex_to_decimal(unsigned char hex_value)
{
unsigned char decimal_value = 0;
if (hex_value >= '0' && hex_value <= '9')
{
decimal_value = hex_value - '0';
}
else if (hex_value >= 'A' && hex_value <= 'F')
{
decimal_value = hex_value - 'A' + 10;
}
else if (hex_value >= 'a' && hex_value <= 'f')
{
decimal_value = hex_value - 'a' + 10;
}
return decimal_value;
}
unsigned int hex_string_to_decimal(char* hex_string)
{
unsigned int decimal_value = 0;
int i = 0;
while (hex_string[i] != '\0')
{
decimal_value = decimal_value * 16 + hex_to_decimal(hex_string[i]);
i++;
}
return decimal_value;
}
void main()
{
char* hex_string = "3A7F";
unsigned int decimal_value = hex_string_to_decimal(hex_string);
// 将十进制值输出到串口或LED等
}
```
在上面的代码中,`hex_to_decimal`函数将一个16进制字符转换为10进制值。`hex_string_to_decimal`函数将一个16进制字符串转换为10进制值。这些函数可以用于将16进制数据转换为10进制值,然后可以将结果输出到串口或LED等设备。
阅读全文