1
我想將給定的字節數組轉換爲int。然後我想扭轉這個過程。那就是我想從該int中取回原始字節數組。 我覺得這樣的事情會工作:C#byte [] long and back
byte[] myBytes = { 0, 0, 0, 32 };
if (BitConverter.IsLittleEndian)
Array.Reverse(myBytes);
int i = BitConverter.ToInt32(myBytes, 0);
Console.WriteLine("int: {0}", i); // Output: 32
byte[] newBytes = BitConverter.GetBytes(i);
Console.WriteLine("byte array: " + BitConverter.ToString(newBytes));
// Outputs: 20-00-00-00
所以也沒有給我回原來的字節數組。我究竟做錯了什麼?
謝謝你的回答。 我對endianess根本不感興趣,當我刪除Array.reverse時,它輸出00-00-00-20。原來的陣列是00-00-00-32,所以我還沒有得到原來的。 後來我會試試你的EndianBitConverter。 – Jonathan 2013-05-05 12:06:48
@Jonathan:不,原來的數組實際上是''00-00-00-20'',因爲'BitConverter.ToString'使用十六進制格式,而在數組初始值設定項中使用* decimal * literal。把'Console.WriteLine(「字節數組:」+ BitConverter.ToString(myBytes));'開始,你會明白我的意思。 – 2013-05-05 12:08:22
是的,我現在看到,BitConverter.ToString令我困惑。感謝您的幫助! – Jonathan 2013-05-05 12:17:19