69,373
社区成员
发帖
与我相关
我的任务
分享
str2="01 00 20 00 01 10 30 31 32 33 34 35 36 37 38 FF FF FF FF FF FF FF";
unsigned char source[22]={0x00,0x20,0x00,0x01,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
char str2[] ="01 00 20 00 01 10 30 31 32 33 34 35 36 37 38 FF FF FF FF FF FF FF";
BYTE source[22] ={0};
for (int i = 0 ,j = 0; i < strlen(str2); i += 3, j++)
{
if (str2[i] >= '0' && str2[i] <= '9')
{
source[j]+= (str2[i] - '0')*16;
}
else if ((str2[i] >= 'a' && str2[i] <= 'z'))
{
source[j]+= (str2[i] - 'a' + 10)*16;
}
else
{
source[j]+= (str2[i] - 'A' + 10)*16;
}
if (str2[i+1] >= '0' && str2[i+1] <= '9')
{
source[j]+= (str2[i+1] - '0');
}
else if ((str2[i+1] >= 'a' && str2[i+1] <= 'z'))
{
source[j]+= (str2[i+1] - 'a' + 10);
}
else
{
source[j]+= (str2[i+1] - 'A' + 10);
}
}
// 打印出来对比一下看看
printf("%s\n" ,str2);
for (int i = 0; i != 22; ++i)
{
printf("%02X " ,source[i]);
}
printf("\n");
char *str2="01 00 20 00 01 10 30 31 32 33 34 35 36 37 38 FF FF FF FF FF FF FF";
unsigned char source[22];
int i;
int v;
for (i=0;i<22;i++) {
sscanf(str2+3+i*3,"%2x",&v);
source[i]=(unsigned char)v;
}
char str2[] ="01 00 20 00 01 10 30 31 32 33 34 35 36 37 38 FF FF FF FF FF FF FF";
BYTE source[22] ={0};
for (int i = 0 ,j = 0; i < strlen(str2); i += 3, j++)
{
if (str2[i] >= '0' && str2[i] <= '9')
{
source[j]+= (str2[i] - '0')*16;
}
else if ((str2[i] >= 'a' && str2[i] <= 'z'))
{
source[j]+= (str2[i] - 'a' + 10)*16;
}
else
{
source[j]+= (str2[i] - 'A' + 10)*16;
}
if (str2[i] >= '0' && str2[i] <= '9')
{
source[j]+= (str2[i] - '0');
}
else if ((str2[i] >= 'a' && str2[i] <= 'z'))
{
source[j]+= (str2[i] - 'a' + 10);
}
else
{
source[j]+= (str2[i] - 'A' + 10);
}
}
// 打印出来看看
for (int i = 0; i != 22; ++i)
{
printf("%02X " ,source[i]);
}
printf("\n");