32-bit and 64-bit, what’s the difference?

Okay. Let’s clear this up once and for all, you nerds.

Distinction discussion

’32-bit’ and ’64-bit’ are adjectives that describe computer programs that target a specific version of the x86 instruction set architecture.

Okay, some definitions, I understand.

  • An instruction set architecture is a set of commands (opcodes, if you will) that tell specifically what thing a CPU chip should do.
  • x86 is a type of ISA. It is designed by Intel and AMD.

ISAs exists so that even if, for example, Intel and AMD manufacture different types of CPU chips, the programs that target the specific ISA they support would still be able to run in all those chips.

  • x86 is a family in general of ISAs that are supported by a number of CPU chips.
  • x86-64 is a specific version of x86 that is supported by 64-bit CPU chips.

64-bit here means that the memory is made available to consumers (programs) in blocks of 64 bits. That is, when you store an integer in a 64-bit chip, it has to be 64 bits long. The same analogy applies with 32-bit chips and 16-bit chips, which you might not have heard of, is a thing.

Programming nerds, discussion ends here. English nerds, the next section is for you.

Grammar and spelling points regarding x86 architectures

  • “64-bit” and “32-bit” are compound adjectives, so they should always have a hyphen in them. “Bit” should also be singular. All of these are wrong, please don’t do these:
    • “my 64 bit program”
    • “my 64bit program”
    • “Windows XP 64 bits”
    • “64-bits”
  • x86 is commonly used together with non-64-bit applications. x86-64 or, equivalently, amd64, is used together with 64-bit applications. ‘x64′ is just a thing popularized by Microsoft so they would look cool: they won’t. Please stop referring to x86-64 as such.


  • You will see applications distributed in either x86, amd64, or ia64. “ia64” is used to refer to the 64-bit Itanium (that is, not x86) ISA.

One thought on “32-bit and 64-bit, what’s the difference?

  1. MRTF

    Hi Kirō, I have some thoughts regarding this matter that are slightly off-topic:

    I remember it being possible to run 16-bit programs on a 32-bit computer and 32-bit programs on a 64-bit computer.

    However taking a leap from 16-bit to 64-bit programs is possible, but it’s quite complex. I recall it was described something like this: “A virtual box inside your computer, so in other words a computer program that can “translate/transform” the program processor.
    -I tried to do this once, but gave up midway after realizing how hard it was to accomplish.
    Also, with my new computer being 32-bit, it seems to be unable to run any of my 16-bit programs, not sure why since it worked on my previous computer, but my guess is that they aren’t supporting old programs in new computers at all. So I think there are more incompatibility errors that need to be taken in consideration.

    I’m not sure if my problem is based on the type of ISA I have, but do you have any suggestions on how to check this out? For example, my computer should be able to support old programs according to compatibility options, but when I try to do it, it just doesn’t work at all.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s