In a 32 bit instruction set you can address 2^32 possible memory locations (*), which is about 4 gigabytes. In a 64 bit instruction set it’s 2^64 which is an inconceivably large number.
Some 64 bit instruction sets like Amd64 (used by Intel/AMD CPUs) are backwards compatible, meaning any program written as 32 bit is a valid 64 bit program. (*)
(*) real apps align data to 8 or 16 byte boundaries so it’s actually a good deal less than 4GB
(*) some programs are written in a way that makes assumptions about memory that make it non trivial to convert from 32 to 64 bits. Just because it’s valid doesn’t mean it works.
Latest Answers