假设我有一个字节数组:
byte[] input = { 0xFF, 0xFc, 0x00, 0x00 }
您可以使用Buffer.BlockCopy
将字节从一个数组复制到另一个数组,而不考虑类型。 因此,我可以这样做:
uint[] output = new uint[1];
Buffer.BlockCopy(input , 0, output, 0, input.Length);
这将把输入的字节复制到输出中,并在此过程中将它们从字节数组转换为uint数组。
问题在于,BlockCopy使用little endianness解释这些字节。我需要一个使用big endianness的拷贝。所以,与我需要的uint值4294705152(0xFFFC0000)相比,我得到了值64767(0x0000FCFF)。请注意,这只是一个简单的例子,我无法轻易地颠倒我的实际应用程序中的字节顺序。
有没有像BlockCopy一样方便快捷,并包括我所需的设置endianness的方法?