我想将一个给定的字节数组转换为整数。然后我想要反转这个过程,也就是说,我想要从那个整数中获得原始的字节数组。 我认为像这样的东西应该可以工作:
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
所以它没有返回原始的字节数组。我做错了什么?
"00-00-00-20"
,因为BitConverter.ToString
将其格式化为十六进制,而您在数组初始化程序中使用了十进制文字。首先放置Console.WriteLine("byte array: " + BitConverter.ToString(myBytes));
,您就会明白我的意思。 - Jon Skeet