32-bit vs 64-bit

Last Updated: 2022-02-04

32-bit / 64-bit is about the size of object references, not the size of numbers.

  • 32-bit: references are 4 bytes, max memory 2^32 bytes (4GiB).
  • 64-bit: references are 8 bytes, max memory 2^64 bytes (16 EiB) of memory.

Not all 64-bit instruction sets support full 64-bit virtual memory addresses: x86-64 and ARMv8 support only 48 bits of virtual address, with the remaining 16 bits of the virtual address required to be all 0's or all 1's, and several 64-bit instruction sets support fewer than 64 bits of physical memory address.

64-bit architectures

  • Intel / AMD: x86-64, a.k.a. amd64 or x64.
  • ARM: aarch64
  • RISC-V

32-bit is dead

  • iOS: Support AArch64 processors only, since iOS 11 (2017)
  • macOS: 64-bit only after 10.15 (2019)
  • Android: 64-bit only after Android 12 (2021)
  • Windows: 64-bit only since Windows 11 (2021)
  • Raspberry Pi OS (64-bit) exits beta in 2022.
  • All Cortex-A processors will be 64-bit only from 2023.
  • Many Linux distros are 64-bit only. E.g. Ubuntu.