Рассматривали ли вы присвоение битам мнемоник и / или идентификаторов вместо того, чтобы ссылаться на них по номеру?
В качестве примера, скажем, установка бита 4 запускает SCRAM ядерного реактора.Вместо того, чтобы называть его «бит 4», мы назовем его «1003».Вот как может выглядеть код для этого:
int const INITIATE_SCRAM = 0x10; // 1 << 4
...
if (initiateScram) {
nbyte |= INITIATE_SCRAM;
} else {
nbyte &= ~INITIATE_SCRAM;
}
Это не обязательно будет более эффективным (после оптимизации), чем ваш исходный код, но я думаю, что он немного более понятен и, вероятно, более удобен в обслуживании.