Семантику операторов менять очень опасно. Оператор ! имеет булеву семантику. Если bRead объявлена не как bool bRead( ... ), то использование оператора ! будет вводить людей в заблуждение. Функция называется b-Read, в которой, согласно Венгерской нотации, b означает тип результата bool. Слово Read означает действие, относительно которого возвращаемое булево значение обычно воспринимается как успешность совершения действия: получилось или нет сделать Read.
И если при этом функция, внезапно, возвращает считанный бит и b тоже означает Бит (или, чего еще хуже, функция возвращает бит в виде значения bool), то пользователь это поймет не сразу. Особенно когда перед bRead стоит оператор ! и все условие выглядит как проверка на то, что следующие 5 бит после первого прочитать не удалось.
И именно по этой же причине запись условия выглядит как ( map & 0x3E ) == 0, это однозначно и понятно читается. Скобки ставят акцент действия и знание порядка операторов тут не при чем.
Это не оптимально выбранная запись. Макрос в этом месте не нужен, нужна встраиваемая функция. Сдвигать стоит не значение, а маску бита, это позволит делать оптимизации из расчета на константный номер бита.
Имя макроса выбрано очень плохо, у макросов другой стиль именования. Сейчас имя напоминает венгерскую нотацию и вводит в заблуждение.
Встраиваемая функция с описанным мной поведением будет иметь возможность оптимизироваться до одной операции с битовой маской. Например.
На моей сонной логике - никак.
Представим, что каждая bRead это А, Б, С.... Выходит что:
!А и !Б и !С и !Д и !Е, тут нету даже единой или над чем можно было бы подумать. Разве что делать незначительные перестановки.
В данном случае можно сократить только твою задачу и кол-во параметров, но в твоем вопросе для этого уже слишком мало прикладной информации.
NQUARE, какая разница? Я отвечал с точки зрения математики, не важно что сюда подставить.
Ну и вроде ты хотел "сократить", а не удлинить и усложнить ))
В данном примере я реально вижу возможность изменений только из-за прикладных условий.
может быть кто-то еще отпишет и скажет то, чего не знаю я... )