2013-11-14 35 views
1

我怎样才能转换十进制值ASCII,我试图与十进制到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?

+3

这个问题的工作实在是不清楚 - 部分原因是可怕的代码布局,部分是因为你还没有真正解释你想达到什么清楚。样本输入和预期输出,以及格式化良好的代码都会省略不相关的位。 –

+0

@ user2933082你刚刚被Skeet'd。 –

+2

我仍然想知道这与WPF有什么关系。 –

回答

4

我真的不知道是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" 

部分你的问题的值可能是这些都是十进制数,但你试图解析它们如十六进制数字。

+0

@Time S谢谢你这对我的工作:) – user2933082

0
data[0] = ((char)(Int32.Parse(data[0], NumberStyles.HexNumber))).ToString(); 
     Console.WriteLine(data.Aggregate((s1, s2) => s1 + (char)(Int32.Parse(s2, NumberStyles.HexNumber)))); 

这将会为您的方案