2013-04-02 2 views
0

У меня есть приложение, которое ожидает 5 байтов, которые производятся от числа. Прямо сейчас я использую Uint32, который составляет 4 байта. Мне сказали сделать класс, который использует байт и Uint32. Тем не менее, я не уверен, как их сочетать, поскольку они являются числами.Преобразование Uint64 в 5 байт и наоборот в C#

Я решил, что лучшим способом может быть использование Uint64 и преобразование его в 5 байт. Однако я не уверен, как это можно сделать. Мне нужно преобразовать его в 5 байт и отдельную функцию в классе, чтобы преобразовать ее обратно в Uint64.

Есть ли у кого-нибудь идеи по наилучшему способу сделать это?

Спасибо

+0

Где вы хотите сохранить этот 5-байтовый int? – rekire

+0

«Ожидает 5 байтов» - как? где? – Jon

+0

это поможет вам, я не уверен ... но похоже, что он может http://msdn.microsoft.com/en-us/library/system.bitconverter.touint64.aspx – MethodMan

ответ

4

Используйте BitConverter.GetBytes, а затем просто удалить три байта не нужно.

Чтобы преобразовать его обратно, используйте BitConverter.ToUInt64, помня, что вам придется сначала заполнить массив байтов тремя дополнительными (нулевыми) байтами.

Просто следите за контентом. Возможно, вам придется отменить свой массив, если приложение, которое вы отправляете эти байты, ожидает противоположную endianess. Также endianess будет определять, нужно ли добавлять/удалять байты из начала или конца массива. (check BitConverter.IsLittleEndian)

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

  • Нет связанных вопросов^_^