为什么这个程序不起作用?我将一个字节数组转换为long。然后从长时间我转换回一个字节数组。生成的字节数组与原始字节数组不同。
class Program
{
static void Main(string[] args)
{
byte[] myBytes = { 0, 0, 0, 32, 56, 99, 87, 34, 56, 56, 34, 33, 67
, 56, 66, 72, 1, 0, 0, 56, 0, 22};
long data = BitConverter.ToInt64(myBytes, 0);
byte[] byteData = BitConverter.GetBytes(data);
Console.WriteLine("byte array: " + BitConverter.ToString(myBytes));
Console.WriteLine("byte array: " + BitConverter.ToString(byteData));
}
}
答案 0 :(得分:4)
由于l4V已经gave正确的假设,我只想将其添加为aswer但我认为我的答案不值得任何投票,因为所有的投票都应该转到l4V 。赞成他的评论。
ToInt64
方法将索引 startIndex 中的字节转换为 startIndex + 7 为Int64值。
基本上,此对话只需8
个数组的0, 0, 0, 32, 56, 99, 87, 34
个字节(byte
)。在这种情况下,会忽略数组的其他字节。
答案 1 :(得分:0)
字节长度超过long
可以容纳(8字节,64位)。
对于替代解决方案,如果您的目标框架高于(包括).Net 4.0,我建议使用BigInteger。