What does it mean to reverse the bits of a number?
Reversing the bits of a number means flipping the order of its binary digits from left to right. For example, if the binary is 1011, reversing it gives 1101.
Click to reveal answer
beginner
How many bits are typically considered when reversing bits of a 32-bit integer?
Usually, all 32 bits of the integer are considered, including leading zeros, to keep the size consistent.
Click to reveal answer
intermediate
What is the main operation used to reverse bits one by one?
The main operations are shifting bits right to read each bit and shifting bits left to build the reversed number, combined with bitwise AND and OR.
Click to reveal answer
beginner
Why do we use bitwise AND with 1 when reversing bits?
Bitwise AND with 1 extracts the least significant bit (rightmost bit) of the number, which we then append to the reversed result.
Click to reveal answer
intermediate
What is the time complexity of reversing bits of a fixed-size integer?
The time complexity is O(1) because the number of bits is fixed (e.g., 32 bits), so the operation takes constant time.
Click to reveal answer
What does the expression (n & 1) do in bit manipulation?
ASets the least significant bit of n to 1
BExtracts the most significant bit of n
CExtracts the least significant bit of n
DShifts n to the right by 1 bit
✗ Incorrect
Using bitwise AND with 1 extracts the rightmost bit of the number.
When reversing bits, why do we shift the result to the left before adding the next bit?
ATo discard the leftmost bit
BTo reset the result
CTo double the number
DTo make space for the new bit on the right
✗ Incorrect
Shifting left moves bits to the left, making space on the right to add the next bit.
How many times do we repeat the bit extraction and shifting when reversing a 32-bit number?
A32 times
BDepends on the number
C64 times
D16 times
✗ Incorrect
We process all 32 bits to reverse the entire number.
What is the initial value of the reversed number before starting the bit reversal?
A0
B1
CThe original number
DDepends on the input
✗ Incorrect
We start with 0 and build the reversed number bit by bit.
If the input number is 0, what is the reversed bits output?
A1
B0
CAll bits set to 1
DUndefined
✗ Incorrect
Reversing bits of 0 results in 0 because all bits are zero.
Explain step-by-step how to reverse the bits of a 32-bit integer.
Think about reading bits from right to left and building the reversed number from left to right.
You got /7 concepts.
Why is bitwise shifting important in reversing bits of a number?
Consider how bits move when you shift left or right.
You got /4 concepts.
Practice
(1/5)
1. What does the operation of reversing bits of a number mean in simple terms?
easy
A. Adding 1 to the binary number
B. Changing all 0s to 1s and 1s to 0s
C. Shifting bits to the left by one position
D. Flipping the order of bits from left to right
Solution
Step 1: Understand bit order
Bits are arranged from left (most significant) to right (least significant).
Step 2: Reverse means flip order
Reversing bits means the leftmost bit becomes rightmost and vice versa.
Final Answer:
Flipping the order of bits from left to right -> Option D
Quick Check:
Reverse bits = flip order [OK]
Hint: Reverse bits means flip their order, not invert values [OK]
Common Mistakes:
Confusing reversing bits with bitwise NOT (inverting bits)
Thinking reversing means shifting bits
Assuming reversing adds or subtracts from the number
2. Which of the following C# code snippets correctly reverses the bits of a 4-bit number stored in an integer variable n?
easy
A. int reversed = 0; for(int i=0; i<4; i++) { reversed <<= 1; reversed |= (n & 1); n >>= 1; }
B. int reversed = 0; for(int i=0; i<4; i++) { reversed |= (n & 1) << i; n >>= 1; }
C. int reversed = n << 4;
D. int reversed = ~n;
Solution
Step 1: Analyze the loop logic in int reversed = 0; for(int i=0; i<4; i++) { reversed <<= 1; reversed |= (n & 1); n >>= 1; }
It shifts reversed left by 1, adds least bit of n, then shifts n right by 1, effectively reversing bits.
Step 2: Check other options
int reversed = 0; for(int i=0; i<4; i++) { reversed |= (n & 1) << i; n >>= 1; } does not reverse bits, it copies bits in same order. int reversed = n << 4; shifts bits left, not reverse. int reversed = ~n; inverts bits, not reverse.
Final Answer:
Option A code correctly reverses bits -> Option A
Quick Check:
Shift left + OR + shift right = reverse bits [OK]
Hint: Shift reversed left, OR with last bit, shift input right [OK]
Common Mistakes:
Using bitwise NOT (~) instead of reversing bits
Shifting bits without combining properly
Not updating reversed variable inside loop
3. What is the output of the following C# code snippet?
int n = 13; // binary 1101
int reversed = 0;
for (int i = 0; i < 4; i++) {
reversed <<= 1;
reversed |= (n & 1);
n >>= 1;
}
Console.WriteLine(reversed);
medium
A. 11
B. 7
C. 13
D. 14
Solution
Step 1: Convert 13 to 4-bit binary
13 in binary (4 bits) is 1101.
Step 2: Reverse bits step-by-step
Bits: 1 1 0 1 reversed: 1 0 1 1 which is binary 1011 = decimal 11.
Final Answer:
11 -> Option A
Quick Check:
1101 reversed = 1011 = 11 [OK]
Hint: Reverse bits manually and convert to decimal [OK]
Common Mistakes:
Not limiting to 4 bits, causing wrong output
Confusing bit order when reversing
Assuming reversed number equals original
4. Identify the error in the following C# code that attempts to reverse bits of an 8-bit number:
int ReverseBits(int n) {
int reversed = 0;
for (int i = 0; i < 8; i++) {
reversed |= (n & 1) << i;
n >>= 1;
}
return reversed;
}
medium
A. The variable reversed should be initialized to 1
B. The loop should run 16 times for 8-bit numbers
C. The bits are not reversed; they are copied in the same order
D. The shift operator << is used incorrectly
Solution
Step 1: Analyze bit placement in loop
The code places bits at increasing positions without reversing order.
Step 2: Understand reversing bits logic
Reversing requires shifting reversed left and OR with last bit, not shifting bits by i.
Final Answer:
The bits are not reversed; they are copied in the same order -> Option C
Quick Check:
Shifting bits by i copies order, not reverse [OK]
Hint: Reversing needs shifting reversed left each step, not shifting bits by i [OK]
Common Mistakes:
Using bit shift by loop index instead of shifting reversed
Incorrect loop count for bit size
Initializing reversed incorrectly
5. You want to reverse the bits of a 16-bit unsigned integer and then check if the reversed number is a palindrome in binary (reads the same forwards and backwards). Which approach correctly combines reversing bits and palindrome check?
hard
A. Invert bits using bitwise NOT, then check if inverted equals original
B. Reverse bits using a loop shifting reversed left and OR with last bit, then compare reversed with original
C. Shift original number left by 16 bits, then compare with original
D. Reverse bits by shifting bits by index, then check if reversed equals original
Solution
Step 1: Reverse bits correctly
Use loop to shift reversed left, OR with last bit of original, shift original right.
Step 2: Check palindrome by comparing reversed and original
If reversed equals original, bits form a palindrome.
Final Answer:
Reverse bits using a loop shifting reversed left and OR with last bit, then compare reversed with original -> Option B
Quick Check:
Reverse bits + compare = palindrome check [OK]
Hint: Reverse bits properly, then compare to original for palindrome [OK]
Common Mistakes:
Using bitwise NOT instead of reversing bits
Shifting bits incorrectly causing wrong reverse
Comparing inverted bits instead of reversed bits
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.