Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Bit Manipulation Basics AND OR XOR NOT Left Right Shift in DSA Javascript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to perform bitwise AND of two numbers.

DSA Javascript
const result = a [1] b;
Drag options to blanks, or click blank then click option'
A^
B|
C~
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using OR operator | instead of AND.
Using XOR ^ which returns 1 when bits differ.
2fill in blank
medium

Complete the code to perform bitwise OR of two numbers.

DSA Javascript
const result = x [1] y;
Drag options to blanks, or click blank then click option'
A|
B>>
C^
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using AND & instead of OR.
Using right shift >> which shifts bits.
3fill in blank
hard

Fix the error in the code to perform bitwise XOR of two numbers.

DSA Javascript
const result = num1 [1] num2;
Drag options to blanks, or click blank then click option'
A~
B|
C^
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using OR | or AND & instead of XOR.
Using NOT ~ which flips bits.
4fill in blank
hard

Fill both blanks to perform left shift by 3 bits and then bitwise NOT.

DSA Javascript
const shifted = value [1] 3;
const result = [2]shifted;
Drag options to blanks, or click blank then click option'
A<<
B~
C>>
D&
Attempts:
3 left
💡 Hint
Common Mistakes
Using right shift >> instead of left shift.
Placing NOT operator after the value.
5fill in blank
hard

Fill all three blanks to perform right shift by 2 bits, then bitwise AND with mask 15, and finally bitwise OR with 8.

DSA Javascript
const shifted = num [1] 2;
const masked = shifted [2] 15;
const result = masked [3] 8;
Drag options to blanks, or click blank then click option'
A>>
B&
C|
D^
Attempts:
3 left
💡 Hint
Common Mistakes
Using left shift << instead of right shift.
Using XOR ^ instead of OR.

Practice

(1/5)
1. What is the result of the bitwise AND operation between 5 and 3? (5 & 3)
easy
A. 1
B. 7
C. 0
D. 8

Solution

  1. Step 1: Convert numbers to binary

    5 in binary is 0101, 3 in binary is 0011.
  2. Step 2: Perform bitwise AND

    0101 & 0011 = 0001 (only bits set in both numbers remain set).
  3. Final Answer:

    1 -> Option A
  4. Quick Check:

    5 & 3 = 1 [OK]
Hint: AND keeps bits set in both numbers only [OK]
Common Mistakes:
  • Confusing AND with OR operation
  • Not converting numbers to binary before operation
  • Assuming decimal addition instead of bitwise
2. Which of the following is the correct syntax for performing a bitwise XOR operation between variables a and b in JavaScript?
easy
A. let result = a | b;
B. let result = a && b;
C. let result = a % b;
D. let result = a ^ b;

Solution

  1. Step 1: Identify bitwise XOR operator in JavaScript

    The XOR operator is represented by the caret symbol (^).
  2. Step 2: Check syntax correctness

    let result = a ^ b; uses a ^ b, which is the correct syntax for bitwise XOR.
  3. Final Answer:

    let result = a ^ b; -> Option D
  4. Quick Check:

    XOR operator is ^ in JavaScript [OK]
Hint: XOR uses ^ symbol in JavaScript [OK]
Common Mistakes:
  • Using && which is logical AND, not bitwise
  • Using | which is bitwise OR, not XOR
  • Using % which is modulo, unrelated to bits
3. What will be the output of the following JavaScript code?
let x = 8; // binary 1000
let y = x >> 2;
console.log(y);
medium
A. 2
B. 4
C. 1
D. 0

Solution

  1. Step 1: Understand right shift operation

    Right shift by 2 means move bits 2 places to the right, dropping the rightmost bits.
  2. Step 2: Apply right shift on binary 1000

    1000 >> 2 becomes 0010, which is decimal 2.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    8 >> 2 = 2 [OK]
Hint: Right shift divides by 2 for each shift [OK]
Common Mistakes:
  • Confusing right shift with left shift
  • Not converting binary to decimal after shift
  • Assuming shift adds zeros on left without dropping bits
4. Find the error in the following code snippet that attempts to flip all bits of a number n using bitwise NOT:
let n = 5;
let flipped = ~n;
console.log(flipped);

What is the issue?
medium
A. Missing parentheses around ~n
B. Bitwise NOT returns a negative number due to two's complement representation
C. Variable n must be a string for bitwise NOT
D. Bitwise NOT operator (~) is not supported in JavaScript

Solution

  1. Step 1: Understand bitwise NOT in JavaScript

    Bitwise NOT flips all bits and returns the two's complement negative number.
  2. Step 2: Explain why output is negative

    For 5 (00000101), ~5 flips bits to 11111010 which is -6 in two's complement.
  3. Final Answer:

    Bitwise NOT returns a negative number due to two's complement representation -> Option B
  4. Quick Check:

    ~n flips bits and returns negative number [OK]
Hint: Bitwise NOT flips bits and returns negative in JS [OK]
Common Mistakes:
  • Expecting positive flipped bits as output
  • Thinking ~ is unsupported operator
  • Assuming input must be string for bitwise ops
5. You want to set the 3rd bit (0-indexed from right) of a number num to 1 without changing other bits. Which expression correctly does this in JavaScript?
hard
A. num = num ^ (1 << 3);
B. num = num & (1 << 3);
C. num = num | (1 << 3);
D. num = num << 3;

Solution

  1. Step 1: Understand setting a bit using OR and shift

    Left shift 1 by 3 gives 00001000, which targets the 3rd bit.
  2. Step 2: Use OR to set the bit without changing others

    OR with this mask sets the 3rd bit to 1, keeping others unchanged.
  3. Final Answer:

    num = num | (1 << 3); -> Option C
  4. Quick Check:

    Use OR with shifted 1 to set bit [OK]
Hint: Use OR with (1 << bit_position) to set bit [OK]
Common Mistakes:
  • Using AND which clears bits instead of setting
  • Using XOR which toggles bits and may unset
  • Using left shift alone which changes number value
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