Если вам не нужно, чтобы результат был точным, то вы можете подумать об умножении на 1/24:
uint16_t a = ...;
uint32_t b = (uint32_t)a * (65536L / 24);
uint16_t c = b / 65536;
Конечно, если ваша платформа не имеет аппаратного множителя, вам нужно оптимизировать это умножение. Как выясняется, (65536/24) примерно равно 2730, что составляет 101010101010 в двоичном виде. Так что умножение может быть достигнуто с 3 сменами и добавляет.