What does the AND (&) bitwise operator do between two bits?
The AND operator returns 1 only if both bits are 1; otherwise, it returns 0. Example: 1 & 1 = 1, 1 & 0 = 0, 0 & 0 = 0.
Click to reveal answer
beginner
Explain the OR (|) bitwise operator with an example.
The OR operator returns 1 if at least one of the bits is 1; otherwise, it returns 0. Example: 1 | 0 = 1, 0 | 0 = 0, 1 | 1 = 1.
Click to reveal answer
beginner
What is the result of XOR (^) between two bits?
XOR returns 1 if the bits are different, and 0 if they are the same. Example: 1 ^ 0 = 1, 1 ^ 1 = 0, 0 ^ 0 = 0.
Click to reveal answer
beginner
Describe the NOT (~) bitwise operator.
NOT flips each bit: 0 becomes 1, and 1 becomes 0. Example: ~0 = 1, ~1 = 0 (in single bit view).
Click to reveal answer
beginner
What happens when you use left shift (<<) and right shift (>>) operators on a number?
Left shift (<<) moves bits to the left, adding zeros on the right, effectively multiplying by 2 for each shift. Right shift (>>) moves bits to the right, removing bits on the right, effectively dividing by 2 for each shift. Example: 4 << 1 = 8, 4 >> 1 = 2.
Click to reveal answer
What is the result of 5 & 3 in binary? (5 = 0101, 3 = 0011)
A0100
B0111
C0010
D0001
✗ Incorrect
5 & 3 = 0101 & 0011 = 0001.
Which operator returns 1 only when bits are different?
AXOR (^)
BOR (|)
CNOT (~)
DAND (&)
✗ Incorrect
XOR (^) returns 1 if bits differ, else 0.
What does the expression ~0 evaluate to in a single bit context?
A1
B0
CUndefined
DSame as 0
✗ Incorrect
NOT (~) flips bits, so ~0 = 1.
What is the decimal result of 3 << 2?
A6
B8
C12
D16
✗ Incorrect
Left shift by 2 multiplies 3 by 4: 3 * 4 = 12.
Which bitwise operator would you use to clear specific bits to zero?
AOR (|)
BAND (&)
CXOR (^)
DNOT (~)
✗ Incorrect
AND (&) with 0 clears bits to zero.
Explain how the AND, OR, and XOR bitwise operators work with simple examples.
Think about how bits combine in each operator.
You got /4 concepts.
Describe what happens when you apply left shift and right shift operators on a number in terms of multiplication or division.
Consider how shifting bits changes the value.
You got /3 concepts.
Practice
(1/5)
1. What is the result of the bitwise AND operation between 5 and 3? (5 = 0101, 3 = 0011 in binary)
easy
A. 1
B. 7
C. 6
D. 0
Solution
Step 1: Convert numbers to binary
5 in binary is 0101, 3 in binary is 0011.
Step 2: Perform bitwise AND operation
0101 AND 0011 = 0001 (only bits set in both numbers remain set).
Final Answer:
1 -> Option A
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 operation
2. Which of the following is the correct TypeScript syntax to perform a bitwise XOR between variables a and b?
easy
A. let result = a && b;
B. let result = a % b;
C. let result = a | b;
D. let result = a ^ b;
Solution
Step 1: Identify bitwise XOR operator in TypeScript
The bitwise XOR operator is the caret symbol (^).
Step 2: Check each option for correct syntax
let result = a ^ b; uses ^ correctly. let result = a && b; uses logical AND (&&), let result = a | b; uses bitwise OR (|), let result = a % b; uses modulus (%).
Final Answer:
let result = a ^ b; -> Option D
Quick Check:
Bitwise XOR uses ^ operator [OK]
Hint: XOR operator is ^ in TypeScript [OK]
Common Mistakes:
Using logical operators instead of bitwise
Confusing OR (|) with XOR (^)
Using modulus operator (%) by mistake
3. What is the output of the following TypeScript code?
const x = 8; // binary 1000
const y = x >> 2;
console.log(y);
medium
A. 0
B. 2
C. 1
D. 4
Solution
Step 1: Understand right shift operation
Right shift (>>) moves bits to the right by the specified number, dropping rightmost bits.
Step 2: Apply right shift to 8 (1000 binary)
Shifting 1000 right by 2 bits gives 0010 binary, which is 2 in decimal.
Final Answer:
2 -> Option B
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. Identify the error in this TypeScript code snippet:
let a = 5;
let b = 3;
let c = a <<< b;
console.log(c);
medium
A. <<< is not a valid bitwise operator
B. Variables a and b must be strings
C. Missing semicolon after variable declarations
D. Bitwise operators cannot be used with let variables
Solution
Step 1: Check the bitwise operators in TypeScript
Valid bitwise shift operators are << (left shift) and >> (right shift). There is no <<< operator.
Step 2: Identify the invalid operator usage
The code uses <<< which is invalid syntax and will cause an error.
Final Answer:
<<< is not a valid bitwise operator -> Option A
Quick Check:
Only << and >> are valid shift operators [OK]
Hint: Use only << or >> for shifts, not <<< or >>> [OK]
Common Mistakes:
Using triple shift operator like in some other languages
Assuming semicolons are mandatory for correctness
Thinking bitwise operators require specific variable types
5. Given n = 29 (binary 11101), which expression will toggle the 3rd bit (counting from 0 at right) using bitwise XOR in TypeScript? Choose the correct code snippet.
hard
A. let result = n | (1 << 3);
B. let result = n & (1 << 3);
C. let result = n ^ (1 << 3);
D. let result = ~n ^ (1 << 3);
Solution
Step 1: Understand toggling a bit with XOR
XOR with 1 flips the bit; XOR with 0 leaves it unchanged.
Step 2: Create mask for 3rd bit
1 << 3 shifts 1 to the 3rd bit position (binary 1000).
Step 3: Apply XOR to toggle the bit
n ^ (1 << 3) flips the 3rd bit of n.
Final Answer:
let result = n ^ (1 << 3); -> Option C
Quick Check:
XOR with mask toggles bit [OK]
Hint: XOR with 1 at bit toggles it, 0 leaves it same [OK]
Common Mistakes:
Using AND or OR instead of XOR to toggle bits
Incorrect bit position shift
Using NOT operator incorrectly with XOR
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.