2015-02-05 5 views
1

У меня есть трудное время, чтобы выполнить то, что должно быть простым преобразованием из целого числа в массив байтов.Преобразование целочисленного в байтовый массив

Я считаю, что это должно быть простым, даже тривиальным, но не может его получить (так, если кто-то знает правильное «имя» для этой операции, скажите, пожалуйста). Кроме того, я не мог найти лучшего заголовка вопроса, но я чувствую, что он немного расплывчатый (не стесняйтесь редактировать).

Что я хочу:

byte[] result = MagicConverter.Convert(336); 
// now result should be {0, 0, 1, 80} 

Результат преобразования 336 должен быть 1, 80, потому что это разложение в базе 256, то есть 1 * 256 + 80 = 336.

Мой кодовая содержит много вещей, связанных с битами, для выполнения подобных задач, но я думаю, что я еще не совсем понимаю эту вещь, связанную с битами.

+2

1 * 256 + 80 = 336, а не 366 – Matt

+1

Примечание, если вы планируете использовать это для передачи массивов байтов с другими приложениями, вам может потребоваться исследование [Endianness] (http: //en.wikipedia .org/вики/Порядок байтов). Различные платформы будут хранить байты для целого числа в разных порядках, и этот порядок может иметь значение при взаимодействии. –

+0

@Matt вы правы, это была опечатка! – heltonbiker

ответ

3
BitConverter.GetBytes(366); 

Необходимо сделать трюк.

+0

Ницца! Я чувствовал, что это должно быть «очевидно» :) Одна заметка: для того, чтобы получить нужный мне заказ, я должен сделать: 'bytes = BitConverter.GetBytes (366); var reverseed = bytes.Reverse(). ToArray(); обратная обратная, ' – heltonbiker

Смежные вопросы