Преобразовать массив байтов (Byte[]) в целое без знака (UInt32) - C#
Формулировка задачи:
Всем привет. У меня простой вопрос. Мне нужно преобразовать массив байтов (Подскажите, как сделать это элегантно.
Byte[]
) в целое без знака (UInt32
). На С++ я бы сделал это memcpy (предварительно занулив переменную назначения). Меня устраивает именно побитовое копирование. А как сделать на C# технически красиво ума не приложу. Есть еще одна деталь. Переменная назначения у меня длиной 4 байта, но копировать мне нужно только 3. Старший остается нулевым. Из всего, что я видел, ничего лучше следующего не нашелByte[] buffer = ...; UInt32 dest = (UInt32)buffer[0] + (UInt32)( buffer[1] << 8 )+ (UInt32)( buffer[2] << 16 );
Немного не так. Мне все таки нужно копировать все четыре байта
Byte[] buffer = ...; UInt32 dest = (UInt32)buffer[0] + (UInt32)( buffer[1] << 8 ) + (UInt32)( buffer[2] << 16 ) + (UInt32)( buffer[3] << 24 );
Решение задачи: «Преобразовать массив байтов (Byte[]) в целое без знака (UInt32)»
textual
Листинг программы
byte[] b = {45, 98, 124, 76}; uint n = BitConverter.ToUInt32(b, 0);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д