Bitwise operations and field extraction Given [A] = 1011 1010 and [B] = 0011 0110 (both 8-bit), let [C] = [A] • [B] where • denotes bitwise AND. What is the decimal value of the field C[4..2]?
-
A1
-
B2
-
C3
-
D4
-
E6
Answer
Correct Answer: 2
Explanation
Introduction / Context:Bitwise Boolean operations are ubiquitous for masking and extracting fields within registers. This problem combines a mask via AND and a subsequent field extraction from the result.
Given Data / Assumptions:
- [A] = 1011 1010 (0xBA).
- [B] = 0011 0110 (0x36).
- [C] = [A] AND [B]; extract bits C[4..2].
Concept / Approach:Compute C with bitwise AND. Then read bits at positions 4 down to 2 (with bit 7 as MSB) to form a 3-bit number. Convert that 3-bit binary to decimal.
Step-by-Step Solution:Compute AND: 1011 1010 AND 0011 0110 = 0011 0010 (0x32).Label bits of C (bit7..bit0): 0 0 1 1 0 0 1 0.Extract C[4..2] = bits 4,3,2 → 0 1 0 → binary 010 = decimal 2.
Verification / Alternative check:Masking method: ((C >> 2) & 0b111) = 0b010 = 2 confirms the field value.
Why Other Options Are Wrong:Values 1, 3, 4, 6 correspond to reading the wrong bit positions or reversing MSB/LSB order.
Common Pitfalls:Confusing bit numbering or inadvertently using OR instead of AND; always define MSB and LSB conventions explicitly.
Final Answer:2