Set Specific Bits in a 32-bit Register

Code

#include <stdio.h>
#include <stdint.h>

// Function to set 'len' bits starting from position 'pos'
uint32_t setBits(uint32_t reg, int pos, int len) {
    uint32_t mask = ((1U << len) - 1) << pos;  // Create mask for 'len' bits at position 'pos'
        return reg | mask;                          // Set the bits without affecting others
        }

        int main() {
            uint32_t reg;
                int pos, len;

                    scanf("%u %d %d", &reg, &pos, &len);

                        uint32_t updatedReg = setBits(reg, pos, len);
                            printf("%u\n", updatedReg);  // Print updated register value in decimal

                                return 0;
                                }

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0 4 3

Expected Output

112