Difficulty: Easy
Correct Answer: 16,384, 16K
Explanation:
Introduction / Context:
Computers commonly express address spaces in hexadecimal because each hex digit corresponds to 4 binary bits. Understanding how to convert a hex address range into a byte count and then into kilobytes is fundamental for memory mapping, stack sizing, and device decoding.
Given Data / Assumptions:
Concept / Approach:
The number of addresses from 0000 to 3FFF equals 3FFF − 0000 + 1. In hex, 3FFF + 1 = 4000 (hex). Therefore, the total count is 0x4000 addresses. Convert 0x4000 to decimal: 4 * 16^3 = 4 * 4096 = 16,384 bytes. Expressed in KB: 16,384 / 1024 = 16 KB.
Step-by-Step Solution:
Compute total addresses: last − first + 1 = 3FFF − 0000 + 1 = 4000 (hex).Convert 4000 (hex) to decimal: 4 * 4096 = 16,384.Relate bytes to kilobytes: 16,384 / 1024 = 16 KB.Select “16,384, 16K.”
Verification / Alternative check:
Binary view: 0000 to 3FFF spans 14 address bits (since 3FFF = 0011 1111 1111 1111). 2^14 = 16,384 addresses, confirming the same result.
Why Other Options Are Wrong:
4,095 (4K) undercounts because it ignores inclusive addressing. 32,740 (32K) and 46,040 (46K) are not powers-of-two aligned with the range. None of the above is wrong because the correct pair exists as option B.
Common Pitfalls:
Forgetting the +1 when ranges are inclusive; mixing decimal “kilo” (1000) with binary “K” (1024) when expressing memory sizes.
Final Answer:
16,384, 16K
Discussion & Comments