1

如何将十进制值转换为 AScii,我尝试过

var charStrs = Convert.ToString(receivedEvent.tagData.can_Msg.data[3]) +
               Convert.ToString(receivedEvent.tagData.can_Msg.data[4]) + 
               Convert.ToString(receivedEvent.tagData.can_Msg.data[5]) + 
               Convert.ToString(receivedEvent.tagData.can_Msg.data[6]) + 
               Convert.ToString(receivedEvent.tagData.can_Msg.data[7]);
var asStr = String.Concat(charStrs.Select(cs => (char)Int32.Parse(cs, NumberStyles.HexNumber)));

我知道我的十进制数 = 56 49 50 48 48 48 53 56 50 56 并将其转换为 ascii 时我会得到 8120005828;但我在 NumberStyles.HexNumber 中出现错误,它似乎不适用于 wpf?

4

2 回答 2

5

我不太确定什么值在data[3]等,但来自http://www.asciitable.com/的值

int[] values = { 56, 49, 50, 48, 48, 48, 53, 56, 50, 56 };
char[] chars = values.Select(x => (char)x).ToArray();
string str = new string(chars);
Console.WriteLine(str); // "8120005828"

您的部分问题可能是这些是十进制数字,但您正试图将它们解析为十六进制数字。

于 2013-11-14T18:46:02.037 回答
0
data[0] = ((char)(Int32.Parse(data[0], NumberStyles.HexNumber))).ToString();
Console.WriteLine(data.Aggregate((s1, s2) => s1 + (char)(Int32.Parse(s2, NumberStyles.HexNumber))) );

这将适用于您的场景

于 2013-11-14T18:54:36.740 回答