Не могли бы вы рассказать подробнее о резервировании.То, что вы пытаетесь сделать, - это небезопасная практика, которая крайне нежелательна, так как вы собираетесь сокращать время преобразования (преобразование 16 бит в 8 бит).
PS достаточно просто написать uint8_t int_val = (uint8_t) ((basic_units * 5U) / 1000U);