如何将ASCII转换为字节?

时间:2014-03-06 21:12:12

标签: c ascii

例如,如果我收到以下ASCII值:123456

如何将两位数组合成一个字节?所以我的字节就像这样......

byte1 = 0x12;

byte2 = 0x34;

byte3 = 0x56; 

谢谢!

3 个答案:

答案 0 :(得分:4)

这称为BCD(二进制编码的十进制)。

char s[] = "123456";
byte1 = (s[0] - '0') * 0x10 + (s[1] - '0');

答案 1 :(得分:1)

这是一种方法:

char string[] = "123456";
int byte1 = (string[0]-'0')*0x10 + (string[1]-'0');
int byte2 = (string[2]-'0')*0x10 + (string[3]-'0');
int byte3 = (string[4]-'0')*0x10 + (string[5]-'0');

HTH

答案 2 :(得分:1)

我想我会详细说明我的评论。我只是有点乐趣。

char string[] = "123456"
byte1 = ((unsigned char)string[0] << 4) | (unsigned char)string[1];
byte2 = ((unsigned char)string[2] << 4) | (unsigned char)string[3];
byte3 = ((unsigned char)string[4] << 4) | (unsigned char)string[5];