你的例子似乎混合,通常情況下,要表示小數點1,您應該有00 00 00 01
(大端),01 00 00 00
(小端)或00 01 00 00
(中端)之一。你所看到的似乎與中端,但在字節級。
你將不得不自己翻轉半字節:
var Index = 0;
var array = new byte[7];
var num = 0x87654321;
var t = num;
array[Index + 2] = (byte)((t & 0xF) << 4 | (t & 0xf0) >> 4); t >>= 8;
array[Index + 3] = (byte)((t & 0xF) << 4 | (t & 0xf0) >> 4); t >>= 8;
array[Index + 4] = (byte)((t & 0xF) << 4 | (t & 0xf0) >> 4); t >>= 8;
array[Index + 5] = (byte)((t & 0xF) << 4 | (t & 0xf0) >> 4);
Console.Writeline("{0:X2} {1:X2} {2:X2} {3:X2}", array[2], array[3], array[4], array[5]);
// prints: 12 34 56 78
編輯:,如果你正在尋找它是大端,然後哈姆雷特Hakobyan的回答是適當的。
字節順序呢? –
我編輯了一下回復以顯示字節順序。 – PiotrWolkowski
這也是不便攜的。 'BitConverter'根據執行的CPU的字節順序返回不同的值。要跨平臺工作,請檢查「BitConverter.IsLittleEndian」。 – Mitch