2012-01-03 2 views
-1

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

00 0f 00 13 

будет напечатано как:

15 , 19 
+1

Какой код вы писали? Что вы уже пробовали? Вы просто ожидаете, что мы напишем вам код? –

+0

что вы пробовали? можете ли вы опубликовать код? Кроме того, домашняя работа должна иметь тег #homework –

+1

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

ответ

4

короткий х = (массив [0] < < 8 | массив [1]);

Эта или некоторая перестановка для C# преобразует первые два байта в короткий. Затем вы можете добавить 2 к каждому из индексов до тех пор, пока не увеличите их.

for(int i = 0; i < array.size(); i+=2) 
{ 
    print((short)((array[i] << 8) | (array[i+1]))); 
} 

Извинения за неполноту, я делаю это на своем Mac :).

+1

(+1 для написания кода C# на Apple) –

+0

на ПК, необходимо использовать) ((массив [i + 1] << 8) | (массив [i])); – user705414

+0

Кстати, как писать C# под Mac? – user705414

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