Bit slicing / indexing in vectors Given B[7..0] = 10100101 (bit 7 is MSB), what is the bit slice B[6..2]?
-
A10100
-
B01001
-
C10010
-
D00101
-
E11001
Answer
Correct Answer: 01001
Explanation
Introduction / Context:Bit slicing is used constantly in HDL design and low-level programming to extract fields from registers. This question tests careful indexing from a declared bit range.
Given Data / Assumptions:
- B[7..0] = 10100101, where bit 7 is the most significant bit (leftmost).
- We are asked for B[6..2], i.e., bits 6, 5, 4, 3, and 2 in that order.
Concept / Approach:Write the bit positions explicitly and read off the requested slice without reordering. Ensure you do not reverse endianness or miscount indices.
Step-by-Step Solution:Label bits: b7 b6 b5 b4 b3 b2 b1 b0 = 1 0 1 0 0 1 0 1.Extract b6..b2 → 0 1 0 0 1.Therefore, B[6..2] = 01001.
Verification / Alternative check:Cross-check by masking and shifting: ((B >> 2) & 0b11111) yields 01001 for B = 0b10100101.
Why Other Options Are Wrong:Each incorrect choice corresponds to a common indexing or reversal mistake (e.g., reading from the LSB end or omitting a bit).
Common Pitfalls:Confusing bit numbering conventions (MSB..LSB vs. LSB..MSB) and accidentally reversing the slice.
Final Answer:01001