#include <stdio.h> unsigned int replace_bits(unsigned int reg, unsigned int val, int pos, int len) { unsigned int mask = (1 << len) - 1; reg = (reg & ~(mask << pos)) | ((val & mask) << pos); return reg; } int main() { unsigned int reg, val; int pos, len; scanf("%u %u %d %d", ®, &val, &pos, &len); printf("%u", replace_bits(reg, val, pos, len)); return 0; }
Test Cases
Test Results
Input
255 0 4 4
Expected Output
15