Difference between 32 bit and 64 bit apps

423 views

Is there any functional difference in 32 bit and 64 bit apps apart from the fact that 32 bit os can only run 32 bit apps whereas a 64 bit os can run both 63 and 32 bit versions of apps?

In: 2

6 Answers

Anonymous 0 Comments

32 bit apps are designed for 32 bit processors and vice versa.

32 bit processor registers can only handle 32 bit (32 1s and 0s) operations per clock cycle. For integers this limits arithmetic between 0 and about 4 billion or 2^32. (Of course there are ways to calculate larger numbers by saving intermediary results into the DRAM, but that costs a lot of time)

64 bit processing increases this 4 billion limit of 32 bit processors to about 16 x 10^18.

32 bit will be backwards compatible on a 64 bit cpu because the 64 bit cpu has more computing “space” and can handle whatever 32 bit operations it needs.

Anonymous 0 Comments

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.

Anonymous 0 Comments

Not really theres workarounds on the os level for most limitations of a 32-bit processor that require additional cpu cycles but to the average human would not be noticed. However i dont think theres a way to get around the 4GB limit on RAM.

Anonymous 0 Comments

A 64 bit app can handle a 64 bit variable or use a memory space that requires a 64 bit address. That is a lot. Like, a super humongous enormous staggeringly huge number or memory space. A 32 bit app can use a a memory space or a number which is 32 bits – which, counterintuitively, is 4.2 billion times smaller than a 64 bit memory space or number. A 4.2billionth of a 64 bit number or memory space is still enormous, but not stupidly huge. So what it really means is that a 32 bit program can probably use enough memory or handle large enough numbers for whatever you are trying to do, but maybe not. A 64 bit program solves that problem. With 64 bits, I promise that for the foreseeable future, you won’t need to consider going to 128 bits. 4.2 billion times larger than a thing that is almost always large enough, is definitely going to be large enough.

Anonymous 0 Comments

None of the answers so far were ELI5-enough for me.

**THIS IS ELI5.**

You have a street. The street has houses. You’ve got a horde of families who need homes. You need to put the families into the houses. One family per house.

This street (Leprechaun Street) only has 100 houses. The addresses go from 1 Leprechaun Street, to 100 Leprechaun Street.

If you wanted to put more than 100 families onto Leprechaun Street, you’re out of luck. There’s only room for 100! (There’s ways around that, but that’s not important right now).

Now you have Gnome Street elsewhere in town. Gnome street has 200 houses, and the addresses go from 1 to 200. You can put twice as many families on that street, right?

Computer programs need memory, they need places to store data. Every place where memory can be stored, has an address. That address tells the computer WHERE that piece of memory is kept.

Which is better? Having only 100 places where you can store memory? Or 200 places?

A “32-bit” Operating System kind of means that you only have 100 addresses into which you can put a family (or a bit of data in memory). It’s like Leprechaun Street.

A “64-bit” Operating System kind of means you have twice as many addresses into which you can put a family (or a bit of data in memory). It’s like Gnome street.

**SOME APPLICATIONS** only know how to look in addresses 1 to 100. Whoever wrote those applications said to themselves “Well, the street only has 100 addresses, so I won’t bother making my app capable of looking in more than 100 houses for the bit of memory I need”.

Those kinds of applications … well, even if you give them a bigger street with 200 houses, the application only knows how to look in up to 100 houses.

THAT is akin to a 32-bit application. It only knows how to use the “smaller” size of memory that computers had for many years.

**OTHER APPLICATIONS** were written to be smarter. They know how to look in addresses from 1 to 200. Those applications are like 64-bit applications.

Forget what the 32/64 means. Just realize that one kind of application can “access” a greater range of memory than the other … regardless of how much memory you have! The 32-bit one is just too dumb to know how to look beyond 100 Gnome street!

**AGAIN, THIS IS ELI5. There’s a lot left out. A LOT.**

But now you should be able to see that a 64-bit Operating System has “200 houses on its street”, but only a 64-bit application knows how to LOOK in all 200 houses.

Anonymous 0 Comments

32-Bit apps were written to work on a 32-Bit system and 64-Bit apps were written to work on a 64-Bit system.

Many 64-Bit OS work in such a way as to allow 32-Bit apps run on them (because that is easy to do)

The main issue is that in a 32-Bit system you have 32-bits to address the RAM of the computer. this works out to 4 Gigabyte of maximum RAM.

A program that only expect to be able to reach 4 Gigabyte of RAM can easily be made to work on a computer where more is available.

The reverse of that, a program written with the expectations of being able to reach more than 4Gigs of Memory running on a system that has less than 4Gigs gets difficult.

You can install a 32-Bit OS on a computer with a CPU designed for 64-Bit operating systems and you can install a 32-Bit Windows applications on 64-Bit Windows OS.

But not the other direction.

Fun Fact:

Windows 10 no longer has the feature necessary to run old 16-Bit windows apps included by default, not because this would be impossible to build, but because it shouldn’t be needed. You can still make it work though if you really need to for some terrible reason.