Цитата:
Сообщение от lti1
T_r_D, попробуйте так:
if (bitRead(buf[6],6) == 1){AP = 7; APV = 0; AM = buf[6]^=1<<6;}
В итоге в переменной AM получите:
3 или 00000011 None
7 или 00000111 Classical
11 или 00001011 Jazz-Blues
15 или 00001111 Pop-Rock
19 или 00010011 Vocal
23 или 00010111 Techno
|
А что означает buf[6]^=1<<6 ?
И почему моё смещение не приводит к такому результату?
По сути я хочу первые 5 бит переместить в начало обнулив последним 3
Мне кажется что при смещении какой-то мусор прилетает.
Может сначала спаять с байтом забитым нулями, а потом сместить?
Только хочется это по компактнее расписать, а не с кучей строк и условий.