basics · intermediate · ~15 min

Rotate left

Circularly shift bits toward the MSB.

Challenge

Implement:

uint32_t rotl32(uint32_t x, int n);

Rotate x left by n positions (bits that fall off the top re-enter at the bottom). n>=0; rotation is mod 32.

Input format

A 32-bit value and a shift n.

Output format

The rotated value.

Constraints

x is 32-bit unsigned integer; n is shift count.

Starter code

#include <stdint.h>
/* Rotate x left by n positions (n>=0; rotation is mod 32). */
uint32_t rotl32(uint32_t x,int n){ (void)n; return x; }

Common mistakes

Shifting by 32 or more bits, which invokes undefined behavior in C.

Edge cases to handle

n == 0, n == 31, n >= 32 (needs normalization).

Background lessons

Solve this exercise in the browser editor — compile and run against the test harness, no setup required.