Почему бы просто не замаскировать последние 8 бит вместо запуска цикла, чтобы увидеть, установлены ли отдельные биты?
const unsigned char bitMask = 0xFF;
j = (i & bitMask);
Обратите внимание, что C ++ 14 позволяет вам сразу определять двоичные литералы
const unsigned char bitMask = 0b1111'1111;
Выше все, что вам нужно.На всякий случай, если вам нужно получить последующие позиции байтов, используйте ту же маску 0xFF
и убедитесь, что результат сдвинут вправо назад, чтобы получить желаемое значение байта.