Извлечение байтов, которое является лучшим методом из двух - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть запрос на выбор метода для извлечения байта из слова.Мое слово в настоящее время без знака.Это просто набор из 32 бит (1 и 0).Оба следующих сценария, которые я реализую, возвращают мне одинаковый результат.Интересно, какой вариант лучше выбрать?

Bytes0=(UINT8)((Word>>00 & 0x0000FF);
Bytes1=(UINT8)(Word>>08  & 0x0000FF);
Bytes2=(UINT8)(Word>>16  & 0x0000FF);
Bytes3=(UINT8)(Word>>24  & 0x0000FF);

or
Bytes0=(UINT8)((Word>>00);
Bytes1=(UINT8)(Word>>08 );
Bytes2=(UINT8)(Word>>16 );
Bytes3=(UINT8)(Word>>24 );

Я что-то упустил?

Спасибо DSP Guy

1 Ответ

0 голосов
/ 29 февраля 2012

При приведении к UINT8 отбрасываются все байты, кроме самого младшего. Итак, в первом случае вы конвертируете старшие байты в 0, а затем отбрасываете их; во втором вы просто отбрасываете их. Второй вариант явно более эффективен, при условии, что вы назначаете UINT8.

...