-2
我正在尋找一種方法,如何字節切換整個ByteArray。舉例來說,如果我有以下順序(!比如我有一個有規模超過300個字節的文件)是這樣的:我將如何bytewap一個ByteArray?
80 37 12 40
並將其加載到ByteArray。我將如何交換它:
37 80 40 12
在我的項目中,通常的長度是4個字節。所以這是不是對我來說很難解決這個:
public static ushort SwapBytes(ushort x)
{
return (ushort)((ushort)((x & 0xff) << 8) | ((x >> 8) & 0xff));
}
byte[] rev = Assembler.Operations.ToByteArray(towrite);
byte[] half = new byte[2];
byte[] half2 = new byte[2];
ushort tt = BitConverter.ToUInt16(rev, 0);
tt = SwapBytes(tt);
half = BitConverter.GetBytes(tt);
Start.fs.Write(half, 0, 2);
所以,現在我會怎麼做,如果我有一個二進制文件是超過400個字節大嗎?我不能只做一個ushort字節碼。我想要像上面顯示的那樣字節數組。
爲什麼要轉換成ushort和小提琴?只需循環遍歷數組,步驟爲2,並隨時切換元素 – Blorgbeard 2015-04-02 01:57:01
如果數組的長度不是偶數而是奇數,您想要執行什麼操作? – BitTickler 2015-04-02 02:06:36
@Blorgbeard因爲這就是我的彙編程序的構建。它適用於BitArrays。一個用於登記,一個用於指示。我後來追加它們直到達到32位,然後將它們轉換爲一個bytearray,然後進行如上所示的交換。但是,在這種情況下,它不再適用,因爲我想字節整個大於4個字節的二進制文件。所以我想bytewap一個bytearray。 (我把二進制文件讀入一個bytearray) – Tetragrammaton 2015-04-02 02:07:48