gpt4 book ai didi

c# - 在数组中添加新字节并移动其余字节

转载 作者:太空狗 更新时间:2023-10-29 22:25:38 24 4
gpt4 key购买 nike

我有一个像这样的数组

17 8B 01 00 03 EA 05 00 14 0A 00 00 03 EA 05 00 14 0A 00 00 00 00 00 FF FF FF FF FF FF FF FF FF

我想在索引 1 (8B) 之后添加一个额外的字节 0x00,并将其余字节向右移动。该数组长 32 字节,在添加额外字节 (0x00) 后我希望它保持与 32 字节相同的长度我不在乎我是否在末尾删除 FF 因为它的备用字节。所以新数组应该是这样的

17 8B 00 01 00 03 EA 05 00 14 0A 00 00 03 EA 05 00 14 0A 00 00 00 00 00 FF FF FF FF FF FF FF FF.

我如何在 C# 中做到这一点?

最佳答案

如果您使用 Array.Copy(),那么在幕后它会使用非常高效的处理器指令来移动数据:

byte[] array = { 0x17, 0x8B, 0x01, 0x00, 0x03, 0xEA, 0x05, 0x00, 0x14, 0x0A, 0x00, 0x00, 0x03, 0xEA, 0x05, 0x00, 0x14, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};

int positionToInsert = 2;
byte valueToInsert = 0;

Array.Copy(array, positionToInsert, array, positionToInsert+1, array.Length-positionToInsert-1);
array[positionToInsert] = valueToInsert;

Array.Copy() 专门用于正确处理重叠副本。

关于c# - 在数组中添加新字节并移动其余字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38607463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com