A microprocessor addresses memory locations from 0000 to 3FFF (hex). Each address stores 1 byte. How many bytes are stored in total, and what is this size expressed in kilobytes (KB)?

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:

  • Address range: 0000 to 3FFF (hex), inclusive.
  • Each address holds exactly 1 byte.
  • 1 KB (K) is taken as 1024 bytes in typical microcomputer contexts.


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

No comments yet. Be the first to comment!
Join Discussion