#include <stdio.h> #include <stdint.h> uint32_t set_baud_rate(uint32_t reg, uint8_t baud) { int i; int ex1, ex2; int j=0; for(i=8;i<=11;i++){ ex1 = reg & (0x01<<i); ex2 = baud & (0x01<<j); j++; if(((ex1 != 0) && (ex2 != 0)) || ((ex1 == 0) && (ex2 == 0))) continue; else{ if((ex1 != 0) && (ex2 == 0)) reg = reg & (~(0x01<<i)); else reg |= 0x01<<i; } } return reg; } int main() { uint32_t reg; uint8_t baud; scanf("%u %hhu", ®, &baud); printf("%u", set_baud_rate(reg, baud)); return 0; }
Test Cases
Test Results
Input
0 10
Expected Output
2560