#include <stdio.h> #include <stdint.h> #define SET_ENABLE(val) ((val & 0x1) << 0) #define SET_MODE(val) ((val & 0x3) << 1) #define SET_SPEED(val) ((val & 0x7) << 3) uint16_t build_register(int enable, int mode, int speed){ uint16_t reg=0; reg|=SET_ENABLE(enable); reg|=SET_MODE(mode); reg|=SET_SPEED(speed); return reg; } int main(){ int enable, mode, speed; scanf("%d %d %d", &enable, &mode, &speed); uint16_t reg=build_register(enable,mode,speed); printf("%u\n", reg); return 0; }
Test Cases
Test Results
Input
1 2 4
Expected Output
37