#include <stdio.h> #include <stdint.h> uint32_t update_register(uint32_t reg) { uint8_t a=0; int c=0; for(int i=10;i<=14;i++){ uint8_t b=1&(reg>>i); a=a|(b<<c); c++; } if(a<31){ a=a+1; } for(int i=10;i<=14;i++){ reg=reg&~(1<<i); } int e=0; for(int i=10;i<=14;i++){ uint8_t d=0; d=1&(a>>e); reg=reg|(d<<i); e++; } return reg;} int main() { uint32_t reg; scanf("%u", ®); uint32_t updated = update_register(reg); printf("%u", updated); return 0; }
Test Cases
Test Results
Input
15360
Expected Output
16384