C51将16进制转10进制代码
时间: 2024-03-05 09:51:45 浏览: 163
16进制转换成10进制
3星 · 编辑精心推荐
以下是一个将16进制数转换成10进制数的C语言代码示例:
```c
#include <reg52.h>
#include <stdio.h>
unsigned char hex_num[] = "3A"; // 16进制数,字符数组类型
unsigned int dec_num = 0; // 10进制数,初始值为0
void main()
{
unsigned char i;
for (i = 0; i < sizeof(hex_num)-1; i++)
{
// 将16进制数的每一位转换成10进制数并累加
dec_num += (hex_num[i] >= '0' && hex_num[i] <= '9') ? (hex_num[i] - '0') : (hex_num[i] - 'A' + 10);
dec_num *= 16;
}
dec_num /= 16;
printf("10进制数为:%d", dec_num); // 输出10进制数
}
```
输出结果为:
```
10进制数为:58
```
在这个代码中,使用for循环遍历16进制数的每一位,将字符类型的16进制数转换成对应的10进制数,并根据公式累加得到最终的10进制数。由于C语言中整数默认为int类型,因此可以直接使用int类型的dec_num变量来存储10进制数。
阅读全文