我有一個包含這樣的值的字節數組: byte[] data={0x04,0x00};
字節[]爲int []而不修整爲0x00
我需要將其轉換成字符串的打印它作爲str_data = 0x400的
但是,當我將其轉換爲字符串數據打印爲40,其中最後0x00被認爲只有0.
我是C#的新手,我正在努力解決這個問題。請幫忙。
我有一個包含這樣的值的字節數組: byte[] data={0x04,0x00};
字節[]爲int []而不修整爲0x00
我需要將其轉換成字符串的打印它作爲str_data = 0x400的
但是,當我將其轉換爲字符串數據打印爲40,其中最後0x00被認爲只有0.
我是C#的新手,我正在努力解決這個問題。請幫忙。
你的問題是有點不清楚,但我認爲你想要什麼是字節X2
格式說明,這將打印字節爲兩個十六進制數字,如:
byte b = 0x40;
Console.WriteLine(b.ToString("X2")); // Prints '40'
每個字節轉換成一個字符串(例如LINQ的Select
方法),然後加入它們並添加「0x」前綴。
...除了第一個字節,在這裏你似乎只需要x的,而不是X2;或擺脫(可能的),導致事後零... – FrankB
我得到的答案在這裏:http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string反之亦然 – sunisiha
謝謝你的回答。我用下面的代碼片斷'StringBuilder hex = new StringBuilder(byteArray.Length * 2); foreach(byteArray中的字節b) hex.AppendFormat(「{0:x2}」,b);' – sunisiha
你可以顯示你用來將其轉換爲字符串的代碼嗎? – juharr
你想要的實際類型有點不清楚。標題說int []所需的變量名似乎是字符串,但包含一個int ...請更新問題描述 – FrankB
BitConverter.ToInt16()做到這一點。或者一個MemoryStream來存儲要轉換的字節和BinaryReader。如何在打印它們時格式化該值是分開的,請使用X格式說明符生成十六進制字符串。 –