, если вы просто хотите сбросить нижние 4 младших значащих бита, вы можете сделать следующее:
unsigned int start_value = SOMEVALUE; // starting value
value = (value & 0xFF0 ); // drop bits
unsigned char final_value =(uint8_t)value >> 4; //bit shift to 8 bits
Обратите внимание на «unsigned». Вы не хотите, чтобы подписанный бит сбрасывался с вашими значениями.