Bit Operations using Macros

Code


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

// Bit manipulation macros
#define SET_BIT(reg, pos)    ((reg) |= (1 << (pos)))
#define CLEAR_BIT(reg, pos)  ((reg) &= ~(1 << (pos)))
#define TOGGLE_BIT(reg, pos) ((reg) ^= (1 << (pos)))

// Function to perform the required bit operations
uint8_t modifyRegister(uint8_t reg) {
    SET_BIT(reg, 2);    // Set bit 2
        SET_BIT(reg, 7);    // Set bit 7
            CLEAR_BIT(reg, 3);  // Clear bit 3
                TOGGLE_BIT(reg, 5); // Toggle bit 5
                    return reg;
                    }

                    int main() {
                        uint8_t reg;
                            scanf("%hhu", &reg);

                                uint8_t updatedReg = modifyRegister(reg);
                                    printf("%u\n", updatedReg);

                                        return 0;
                                        }

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

0

Expected Output

164