2015-04-17 79 views
-1

我有一个包含这样的值的字节数组: byte[] data={0x04,0x00};字节[]为int []而不修整为0x00

我需要将其转换成字符串的打印它作为str_data = 0x400的

但是,当我将其转换为字符串数据打印为40,其中最后0x00被认为只有0.

我是C#的新手,我正在努力解决这个问题。请帮忙。

+2

你可以显示你用来将其转换为字符串的代码吗? – juharr

+1

你想要的实际类型有点不清楚。标题说int []所需的变量名似乎是字符串,但包含一个int ...请更新问题描述 – FrankB

+0

BitConverter.ToInt16()做到这一点。或者一个MemoryStream来存储要转换的字节和BinaryReader。如何在打印它们时格式化该值是分开的,请使用X格式说明符生成十六进制字符串。 –

回答

0

你的问题是有点不清楚,但我认为你想要什么是字节X2格式说明,这将打印字节为两个十六进制数字,如:

byte b = 0x40; 
Console.WriteLine(b.ToString("X2")); // Prints '40' 

每个字节转换成一个字符串(例如LINQ的Select方法),然后加入它们并添加“0x”前缀。

+0

...除了第一个字节,在这里你似乎只需要x的,而不是X2;或摆脱(可能的),导致事后零... – FrankB

+0

我得到的答案在这里:http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string反之亦然 – sunisiha

+0

谢谢你的回答。我用下面的代码片断'StringBuilder hex = new StringBuilder(byteArray.Length * 2); foreach(byteArray中的字节b) hex.AppendFormat(“{0:x2}”,b);' – sunisiha