Я устраняю какой-то код, и я обнаружил эту строку
uint8var = ((constUint8[0]) >> 7) & 0x01u;
Мне было интересно, какова в этом правильная практика. Требуется ли & 0x01u
для правильной реализации при написании кода, совместимого с MISRA, учитывая, что я сдвигаю uint8 на 7 цифр вправо?
& 1
было бы гораздо более читаемым IMO, а еслиconstUint8[0]
8 бит, вся операция избыточна. - person joH1   schedule 12.04.2019(x >> 7) & 0x01
,x >> 7
и!!(x & 0x80)
(гдеx
- беззнаковый символ) в одну и ту же инструкцию ... если есть сомнения, проверьте сборку. - person Shawn   schedule 12.04.2019uint8_t
? - person Lundin   schedule 12.04.2019