C# Byte[] 到长反转不起作用

Jon*_*han 2 c# arrays bitconverter long-integer

为什么这个程序不起作用?我将字节数组转换为长整型。然后从 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));
    }
}
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 5

由于l4V已经给出了正确的假设,我只想将其添加为答案,但我认为我的答案不值得任何投票,因为所有赞成票都应该投给l4V。为他的评论点赞。

BitConverter.ToInt64

该方法将从索引startIndexstartIndex + 7 的ToInt64字节转换为 Int64 值。

所以基本上,这个对话只需要数组的8字节(0, 0, 0, 32, 56, 99, 87, 34byte。在这种情况下,数组的其他字节将被忽略。