Rotate Left in an 8-bit Register

Code

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

uint8_t rotate_left(uint8_t reg, uint8_t n) {
    // Your code here
    uint8_t val = reg;
    uint8_t result = (val << n) | (val >> (8 - n));
    result &= 0xFF;  // Ensure 8-bit result

    /*
    uint8_t result = 0x00; 
    uint8_t result1 = 0x00; 
    uint8_t temp = reg; 
    uint8_t mask = 0b11111111; 
    int len = 0x00; 
    while (temp > 0) 
    { 
        temp = temp >> 1; 
        len++; 
    } 
    for(int i= 0; i < n; i++) 
    { 
        temp = len - n; 
        result = ((reg >> temp) & mask); 
        //printf("%d\n",result); 
        result1 = ((reg << n) | result); 
    } */
    return result; 
}

int main() {
    uint8_t reg, n;
    scanf("%hhu %hhu", &reg, &n);
    printf("%u", rotate_left(reg, n));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

176 1

Expected Output

97