#include<stdio.h> #include<stdint.h> uint16_t highest_set_bit(uint16_t reg){ uint16_t result=0; if(reg==0) result=0; else{ result=1U<<15; while((reg&result)==0){ result=result>>1; } } return result; } int main(){ uint16_t reg; scanf("%u",®); uint16_t result=highest_set_bit(reg); printf("%u",result); return 0; }
Test Cases
Test Results
Input
44
Expected Output
32