单片机10进制转16进制
时间: 2023-11-02 07:05:48 浏览: 300
单片机中将十进制转换为十六进制的方法可以参考下面的代码:
```c
#include<stdio.h>
void nToHexstr(unsigned char n, unsigned char * hexstr, unsigned char strlen) {
unsigned char hexChar[16] = {'0', '1','2','3', '4','5','6', '7','8','9', 'A','B','C', 'D','E','F'};
unsigned char i;
unsigned char dis;
unsigned long nTemp = (long) n;
for(i=1; i<=strlen; i++) {
dis = nTemp & 0x0f;
hexstr[strlen-i] = hexChar[dis];
nTemp = nTemp >> 4;
}
hexstr[strlen]='\0';
}
int main() {
unsigned char temp = 10; // 十进制数值
unsigned char tempHexstr[3]; // 存储转换后的十六进制字符串
nToHexstr(temp, tempHexstr, 2); // 调用函数进行转换
printf("转换后的十六进制字符串:%s\n",tempHexstr);
return 0;
}
```
以上代码为示例代码,将单片机中的十进制数值转换为十六进制字符串。其中,函数nToHexstr()接受三个参数,分别是需要转换的十进制数值、存储转换后十六进制字符串的数组地址、转换后的字符串长度。在示例代码中,我们将十进制数值10转换为两位十六进制字符串,得到的结果是0A。
阅读全文