I understand that a 32 bit OS can have 2^32 memory location and 2^32 is almost equal to 4 billion. But why the memory is 4GB? 1 byte is 8 bits and on each memory location there are 4 bytes = 32 bit. So 2 ^ 32 times 4 should equal to 4 * 4 * (2 ^ 30) = 16 GB?
Asked
Active
Viewed 306 times
0
-
No each memory location is byte addressable, it's one byte. – GRAYgoose124 Jan 20 '17 at 04:57
-
Because memory locations are 1 byte, not 4 bytes. – Dan Lowe Jan 20 '17 at 04:57
-
1Addresses are byte addresses. You can address up to 4 billion bytes or 2 billion 16-bit values or 1 billion 32-bit values, using billion in the sense of 'binary billion'. – Jonathan Leffler Jan 20 '17 at 04:58
1 Answers
1
2^32 bytes = 4294967296 bytes = 4194304 KB = 4096 MB = 4GB.
A 32-bit OS uses 32-bit pointers. The largest value that can point to is 2^32 - 1. So a 32-bit OS can only see 4GB of memory.

dbush
- 205,898
- 23
- 218
- 273