Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中按一定顺序反转文件中的字节?_C#_Arrays_Endianness - Fatal编程技术网

如何在C#中按一定顺序反转文件中的字节?

如何在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代码中,我想知道如何在文件中按特定顺序反转字节?更具体地说,我有一个文件,需要反转其中某些字节的顺序(endian交换)

例如,我可以将字节00 00 01转换为01 00 00 00或00 01转换为01 00,反之亦然


有人知道我如何用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