如何在C#中按一定顺序反转文件中的字节?
在我的C代码中,我想知道如何在文件中按特定顺序反转字节?更具体地说,我有一个文件,需要反转其中某些字节的顺序(endian交换) 例如,我可以将字节00 00 01转换为01 00 00 00或00 01转换为01 00,反之亦然如何在C#中按一定顺序反转文件中的字节?,c#,arrays,endianness,C#,Arrays,Endianness,在我的C代码中,我想知道如何在文件中按特定顺序反转字节?更具体地说,我有一个文件,需要反转其中某些字节的顺序(endian交换) 例如,我可以将字节00 00 01转换为01 00 00 00或00 01转换为01 00,反之亦然 有人知道我如何用C代码实现这一点吗?我对C#很陌生,我自己也尝试过,但是没有用。如果可以,请提供帮助,谢谢。您可以使用以下简单的实用程序功能来反转它们: public void ReverseBytes(byte[] array, int startIndex, in
有人知道我如何用C代码实现这一点吗?我对C#很陌生,我自己也尝试过,但是没有用。如果可以,请提供帮助,谢谢。您可以使用以下简单的实用程序功能来反转它们:
public void ReverseBytes(byte[] array, int startIndex, int count)
{
var hold = new byte[count];
for (int i=0; i<count; i++)
{
hold[i] = array[startIndex + count - i - 1];
}
for (int i=0; i<count; i++)
{
array[startIndex + i] = hold[i];
}
}
根据您的要求,您也可以使用循环:
for (int i=0; i<16; i+=4)
ReverseBytes(fileBytes, i, 4);
for(int i=0;i您可以使用如下简单的实用函数来反转它们:
public void ReverseBytes(byte[] array, int startIndex, int count)
{
var hold = new byte[count];
for (int i=0; i<count; i++)
{
hold[i] = array[startIndex + count - i - 1];
}
for (int i=0; i<count; i++)
{
array[startIndex + i] = hold[i];
}
}
根据您的要求,您也可以使用循环:
for (int i=0; i<16; i+=4)
ReverseBytes(fileBytes, i, 4);
for(int i=0;我不需要助手,为什么不直接使用Array.Reverse(fileBytes,0,4)
?它针对基本类型进行了优化,并将使用CLR中实现的内部调用TrySzReverse无需助手,为什么不直接使用Array.Reverse(fileBytes,0,4)
?它针对基本类型进行了优化,并将使用CLR中实现的内部调用TrySzReverse