2014-03-06 70 views
2

例如,如果我收到以下ASCII值:123456如何将ASCII转换为字节?

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

byte1 = 0x12; 

byte2 = 0x34; 

byte3 = 0x56; 

谢谢!

+0

它们是(123456)字符还是已经是整数值了? – TerraOrbis

+0

他们仍然是字符 – Ammar

+1

那怎么样:byte1 =((unsigned char)1 << 4)| (无符号字符)2; – TerraOrbis

回答

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

+0

这就是我一直在寻找的,谢谢! – Ammar

4

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

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

大家好,谢谢! – Ammar

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];