ANSI C中貌似没有Byte吧? 下述代码中用typedef定义其为unsigned char,如果你用的C编译器中已经有Byte的定义,去除typedef那行就好了。
基本算法就是从字符串的最左端开始,每两个字符组成一个Byte,存储到byte数组的合适位置。
#include <stdio.h>
typedef unsigned char Byte;
void s2bytes(char *str, Byte *r)
{
int i=0;
Byte b;
while(*(str+i)!='\0')
{
b=(*(str+i)-'0')*16+ *(str+i+1)-'0';
i+=2;
*r++=b;
}
}
int main()
{
char str[]="000100010019";
Byte ba[6];
int i;
s2bytes(str, ba);
for(i=0; i<6; i++)
printf("%x ", ba[i]);
printf("\n");
return 0;
}