#include <stdint.h> uint16_t rotate_right_16bit(uint16_t value, uint8_t num_rotates) { num_rotates %= 16; while (num_rotates--) { uint16_t lsb = (value & 1) << 15; value = (value >> 1) | lsb; } return value; }