2015-04-17 93 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