C语言:十进制、十六进制数据互换
美男子玩编程
共 907字,需浏览 2分钟
·
2021-09-05 18:11
最近写单片机数据转换用到了十进制、十六进制互换,将示例Demo分享给各位朋友:
十进制转换为十六进制,代码如下所示:
int DectoHex(int dec, unsigned char *hex, int length)
{
for(int i=length-1; i>=0; i--)
{
hex[i] = (dec%256)&0xFF;
dec /= 256;
}
return 0;
}
各位可以将手动规定的length参数,修改为自动计算数据长度的效果。
十六进制转换为十进制,代码如下所示:
unsigned long HextoDec(const unsigned char *hex, int length)
{
unsigned long rslt = 0;
for(int i=0; i<length; i++)
{
rslt += (unsigned long)(hex[i])<<(8*(length-1-i));
}
return rslt;
}
除了使用以上方法,还可以使用:sprintf()函数,声明如下所示:
int sprintf(char *str, const char *format, ...)
只需要修改函数参数,就可以便捷实现各类型进制转换,例如实现十进制、十六进制数据互换,伪代码如下所示:
sprintf(&data, "十进制12的十六进制是%X", 12);
sprintf(&data, "十六进制0X12的十进制是%d", 0X12);
评论
hexdump十六进制数据查看工具
hexdump是一个十六进制数据查看工具,可生成CP/M-like格式的数据,可处理EBCDIC,支持国际化,提供很多格式化的函数。
hexdump十六进制数据查看工具
0
C语言 | 常见数据转化函数
来源:嵌入式云IOT技术圈作者:杨源鑫整理 1、字符串转十六进制代码实现:void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i<nLen/2; i++) { h1...
嵌入式Linux
0