字符串 16进制 C语言

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:24:30
在arm7 keil C语言编程
uint8 SEND_STRING[] = "0A1B401B533333330A";
想用UART0_SendStr(SEND_STRING)将上面那一串字符串以16进制的0A1B...发送出去,
求一个转换的函数
谢了 或者给一个转换思路

参考代码:
#include <stdio.h>
#include <string.h>

void main()
{
char str[] = "0A1B401B533333330A";
char hex[2];
int i, ch, l;

puts(str);
l = strlen(str);

for (i = 0; i < l; ++i)
{
ch = str[i];
hex[0] = ch % 16;
hex[1] = ch / 16;

printf("%d%d ", hex[1], hex[0]);
}

putchar('\n');
}

用 逻辑 与(&) 0xff,0xff00,0xff0000 .... 取 相应的位,再右移。
得到一个一个 byte , 发送出去