char[]如何转成BYTE[]
char a[] = "02 03 06 30 41 B3 "
现我要把这串字符串转成BYTE,转成手变成如下的格式
BYTE b[7] = {0x02,0x03,0x06,0x30,0x41,0xB3}
这该怎么转?
[解决办法]
#include <stdio.h>
unsigned char hex(char ch)
{
if(ch >= '0' && ch <= '9')
return ch - '0';
else if(ch >= 'A' && ch <= 'F')
return ch - 'A' + 10;
else if(ch >= 'a' && ch <= 'f')
return ch - 'a' + 10;
return 0;
}
int main(int argc, char* argv[])
{
char a[] = "02 03 06 30 41 B3 ";
char* p = &a[0];
unsigned char b[7];
unsigned char data;
int i = 0;
while(*p)
{
data = hex(*p++) << 4;
data
[解决办法]
= hex(*p++);
b[i++] = data;
p++;
}
for(i = 0; i < 7; i++)
printf("0x%02x\n", b[i]);
return 0;
}
BYTE byt = 0
for(int i=0;i<2;++i)
{
byt = byt*16;
swtich(b[i])
{
case '0':
byt += 0;
break;
case '1':
byt += 1;
...
}
}
#include <stdio.h>
typedef unsigned char BYTE;
char a[] = "02 03 06 30 41 B3 ";
BYTE b[6];
int i,v;
int main() {
for (i=0;i<6;i++) {
sscanf(a+i*3,"%2X",&v);
b[i]=v;
}
for (i=0;i<6;i++) {
printf("0x%02X ",b[i]);
}
return 0;
}
//0x02 0x03 0x06 0x30 0x41 0xB3