Reputation: 295
I am aware of possible duplicate questions already in stackoverflow. But those questions do not address my question directly. My understanding is that 32 bit machine uses 32 bit to store memory addresses, therefore, the maximum memory it can have is 2^32 bit. However, 2^32 bit = 2^29 byte = 2^29/10^9 = 0.5 Gigabyte.
I know that the answer should be 4 gigabyte. But I simply cannot figure out where is my mistake. HELP!
Upvotes: 1
Views: 326
Reputation: 1933
I believe that the 2^32 refers to the number of addressable bytes not the total number of bits in memory. you can address 4 billion bytes ( 32 billion bits) or 4 gigs of memory. For instance
Address 0 | Address 1 |... | Address 2^32
........................................
8 bits | 8 bits | ...| 8 bits
EDIT: The 32 bit machine usually refers to the number of bits you can stuff into the CPU's registers (not RAM). Thus 1 register allows for 32 bits which can address 2^32 bytes of RAM.
EDIT: Here is a good explanation on superuser: https://superuser.com/questions/56540/32-bit-vs-64-bit-systems
Upvotes: 1