Я извлекаю 8-й бит из байта в C. Вот мой пример. Эффективность извлечения бит из байта
register unsigned char byte;
int pos = 7;
int x =(byte >> pos) & 1; //Method I
int y =(byte & 0x80) >> pos; //Method II
Оба метода приведет к тому же выходу, но и является одним из способов более эффективных, чем другие?
метод 2 не будет работать, если позиция имеет другое значение –
Если выполнение операции имеет решающее значение для вас, то вам необходимо проверить сборку, что компилятор генерирует а также сравнить его. – joshuanapoli
Они такие же, но вы можете оптимизировать его для определенных наборов инструкций, спустившись к сборке и используя прыжок, если нуль/прыжок, если нести инструкции ... – nonsensickle