Bird
Raised Fist0
DSA Javascriptprogramming~15 mins

Reverse Bits of a Number in DSA Javascript - Build from Scratch

Choose your learning style10 modes available
Reverse Bits of a Number
📖 Scenario: Imagine you are working with a simple digital device that stores numbers in binary form. Sometimes, you need to reverse the order of bits in a number to decode a message or fix a signal.
🎯 Goal: You will write a program that takes a number, reverses its bits, and shows the new number after reversing.
📋 What You'll Learn
Create a variable called num with the value 13.
Create a variable called reversed and set it to 0.
Use a for loop with variable i from 0 to 3 to reverse the bits of num.
Print the value of reversed.
💡 Why This Matters
🌍 Real World
Reversing bits is useful in low-level programming, data encoding, and communication systems where bit order matters.
💼 Career
Understanding bitwise operations and loops is important for roles in embedded systems, firmware development, and performance-critical applications.
Progress0 / 4 steps
1
Create the number variable
Create a variable called num and set it to 13.
DSA Javascript
Hint

Use const num = 13; to create the number variable.

2
Create the reversed variable
Create a variable called reversed and set it to 0.
DSA Javascript
Hint

Use let reversed = 0; to start with zero reversed bits.

3
Reverse the bits using a loop
Use a for loop with variable i from 0 to 3 to reverse the bits of num. Inside the loop, shift reversed left by 1, then add the rightmost bit of num shifted right by i. Use bitwise operators &, >>, and <<.
DSA Javascript
Hint

Use for (let i = 0; i < 4; i++) and update reversed inside the loop.

4
Print the reversed number
Print the value of reversed using console.log(reversed).
DSA Javascript
Hint

Use console.log(reversed); to show the reversed bits as a number.

Practice

(1/5)
1. What does reversing the bits of a number mean in simple terms?
easy
A. Flipping the order of all bits from left to right
B. Changing all 0 bits to 1 bits
C. Adding 1 to the number
D. Multiplying the number by 2

Solution

  1. Step 1: Understand bits as binary digits

    Bits are the 0s and 1s that make up a number in binary form.
  2. Step 2: Define reversing bits

    Reversing bits means reading the bits from right to left instead of left to right.
  3. Final Answer:

    Flipping the order of all bits from left to right -> Option A
  4. Quick Check:

    Reverse bits = flip order [OK]
Hint: Think of bits like beads on a string flipped end to end [OK]
Common Mistakes:
  • Confusing reversing bits with flipping bits (0 to 1)
  • Thinking reversing bits changes the number by adding or multiplying
  • Assuming reversing bits means reversing digits in decimal
2. Which of the following JavaScript code snippets correctly reverses the bits of an 8-bit number n?
easy
A. let result = 0; for(let i=0; i<8; i++) { result += (n & 1) << i; n <<= 1; }
B. let result = 0; for(let i=0; i<8; i++) { result |= (n & 1) << i; n >>= 1; }
C. let result = 0; for(let i=0; i<8; i++) { result <<= 1; result |= (n & 1); n >>= 1; }
D. let result = 0; for(let i=7; i>0; i--) { result |= (n & 1) << i; n >>= 1; }

Solution

  1. Step 1: Analyze the loop and bit operations

    let result = 0; for(let i=0; i<8; i++) { result <<= 1; result |= (n & 1); n >>= 1; } shifts result left, adds least significant bit of n, then shifts n right. This reverses bits correctly.
  2. Step 2: Check other options for errors

    let result = 0; for(let i=0; i<8; i++) { result |= (n & 1) << i; n >>= 1; } does not reverse bits, it copies bits in same order. let result = 0; for(let i=7; i>0; i--) { result |= (n & 1) << i; n >>= 1; } shifts bits incorrectly. let result = 0; for(let i=0; i<8; i++) { result += (n & 1) << i; n <<= 1; } shifts n left, which is wrong.
  3. Final Answer:

    let result = 0; for(let i=0; i<8; i++) { result <<= 1; result |= (n & 1); n >>= 1; } -> Option C
  4. Quick Check:

    Shift result left + add bit from n right [OK]
Hint: Shift result left, add n's right bit, shift n right [OK]
Common Mistakes:
  • Shifting n left instead of right
  • Not shifting result before adding bit
  • Using wrong loop direction or bit positions
3. What is the output of the following code snippet?
function reverseBits(n) {
  let result = 0;
  for(let i = 0; i < 4; i++) {
    result <<= 1;
    result |= (n & 1);
    n >>= 1;
  }
  return result;
}

console.log(reverseBits(13));
medium
A. 14
B. 11
C. 7
D. 13

Solution

  1. Step 1: Convert 13 to 4-bit binary

    13 in binary (4 bits) is 1101.
  2. Step 2: Reverse bits step-by-step

    Loop 4 times: result builds as follows:
    i=0: result=0<<1=0 + (13&1=1) =1
    n=13>>1=6 (0110)
    i=1: result=1<<1=2 + (6&1=0) =2
    n=6>>1=3 (0011)
    i=2: result=2<<1=4 + (3&1=1) =5
    n=3>>1=1 (0001)
    i=3: result=5<<1=10 + (1&1=1) =11
  3. Final Answer:

    11 -> Option B
  4. Quick Check:

    Reverse 1101 = 1011 (binary 11 decimal) [OK]
Hint: Trace bit shifts and OR operations carefully [OK]
Common Mistakes:
  • Confusing decimal and binary values
  • Not shifting result before OR
  • Looping wrong number of times
4. Find the error in this bit reversal function and choose the corrected version:
function reverseBits(n) {
  let result = 0;
  for(let i = 0; i < 8; i++) {
    result |= (n & 1);
    result <<= 1;
    n >>= 1;
  }
  return result;
}
medium
A. Change loop to run 16 times
B. Shift n left instead of right
C. Initialize result with 1 instead of 0
D. Swap the order: shift result left before OR operation

Solution

  1. Step 1: Identify order of operations

    Current code ORs bit then shifts result left, causing last bit to be lost.
  2. Step 2: Correct by shifting result left before OR

    Shift result left first, then OR with current bit to build reversed bits correctly.
  3. Final Answer:

    Swap the order: shift result left before OR operation -> Option D
  4. Quick Check:

    Shift before OR to keep all bits [OK]
Hint: Always shift result left before adding new bit [OK]
Common Mistakes:
  • Shifting result after OR loses last bit
  • Shifting n left instead of right
  • Wrong loop count for bit size
5. You want to reverse the bits of a 16-bit number and then check if the reversed number is a palindrome in binary (reads same forwards and backwards). Which approach is correct?
hard
A. Reverse bits using a loop, then check if reversed number equals its own reverse
B. Reverse bits using a loop, then reverse again and compare with original
C. Reverse bits using a loop, then compare reversed number with original
D. Reverse bits using a loop, then convert to decimal and check if even

Solution

  1. Step 1: Reverse bits of the number

    Use a loop to reverse all 16 bits correctly.
  2. Step 2: Check palindrome by comparing reversed number with its own reverse

    If reversed number equals its reverse, it is a binary palindrome.
  3. Final Answer:

    Reverse bits using a loop, then check if reversed number equals its own reverse -> Option A
  4. Quick Check:

    Palindrome check = reversed == reverse(reversed) [OK]
Hint: Check palindrome by comparing reversed number to its reverse [OK]
Common Mistakes:
  • Comparing reversed number directly to original (wrong for palindrome)
  • Checking decimal evenness instead of binary palindrome
  • Reversing bits twice unnecessarily
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard