Для этого можно использовать класс BitConverter
, и, конечно же, его можно использовать как для систем с прямым и младшим порядком байтов.
Конечно, вам придется отслеживать порядковый номер ваших данных. Например, для связи это будет определено в вашем протоколе.
Затем вы можете использовать класс BitConverter
для преобразования типа данных в байтовый массив и наоборот, а затем использовать флаг IsLittleEndian
, чтобы узнать, нужно ли вам преобразовывать его в вашей системе.
Флаг IsLittleEndian
сообщит вам порядковый номер системы, поэтому вы можете использовать его следующим образом:
Это со страницы MSDN класса BitConverter
.
int value = 12345678; //your value
//Your value in bytes... in your system's endianness (let's say: little endian)
byte[] bytes = BitConverter.GetBytes(value);
//Then, if we need big endian for our protocol for instance,
//Just check if you need to convert it or not:
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes); //reverse it so we get big endian.
Полный текст статьи можно найти здесь .
Надеюсь, это поможет любому, кто придет сюда:)