The terms "32-bit" and "64-bit" are commonly seen in system requirements and other technical literature, but few people actually know what these terms mean. Do they refer to hardware or software specifications? What makes a system 64-bit and what is the difference between a 64-bit computer and a 32-bit model? In most cases, you simply need to know if your operating system is 32-bit or 64-bit in order to run a certain program. However, when determining what software to install on your computer, it is helpful to understand what the terms actually mean.

Hardware

32-bit and 64-bit are commonly used to describe processor architecture or design. A 32-bit processor includes a 32-bit register, which can store 232 or 4,294,967,296 values. A 64-bit processor includes a 64-bit register, which can store 264 or 18,446,744,073,709,551,616 values. Therefore, a 64-bit register is not twice as large as a 32-bit register, but is 4,294,967,296 times larger. That's a big difference, but how does it affect computing performance?
The CPU register stores memory addresses, which is how the processor accesses datafrom RAM. One bit in the register can reference an individual byte in memory, so a 32-bit system can address a maximum of 4 gigabytes (4,294,967,296 bytes) of RAM. The actual limit is often less – around 3.5 gigabytes – since part of the registry is used to store other temporary values besides memory addresses.
A 64-bit register can theoretically reference 18,446,744,073,709,551,616 bytes, or 17,179,869,184 gigabytes (16 exabytes) of memory. This is several million times more than an average workstation would need to access. What's important is that a 64-bit computer (which means it has a 64-bit processor) can access more than 4 GB of RAM. If a computer has 16 GB of RAM, it better have a 64-bit processor. Otherwise, at least 12 GB of the memory will be inaccessible by the CPU.
While 64 bits is far more storage than what modern computers require, it removes all bottlenecks associated with 32-bit systems. For example, 64-bit systems run more efficiently since memory blocks are more easily allocated. They also support 64-bit instructions and have 64-bit data paths, which enables them to process more data at once than 32-bit systems can.

Software

So how does 32-bit or 64-bit hardware affect software? Generally speaking, 32-bit programs can run on a 64-bit system, but 64-bit programs will not run on a 32-bit system. This is because 64-bit applications include 64-bit instructions that will not be recognized by a 32-bit processor.
In order to run a 64-bit program, your operating system must be 64-bit. Around 2008, 64-bit versions of Windows and OS X became standard, though 32-bit versions were still available. Therefore, if you bought your computer in 2009 or later, there is a good chance you are running a 64-bit operating system. In Windows, you can check your OS version by right-clicking My Computer, selecting Properties, and clicking System to view the system type. If you have a Mac and you are running OS X 10.7 or later, your OS is 64-bit.
While it is possible to install a 32-bit operating system on a 64-bit system, it is best to install a 64-bit version if possible. The 64-bit OS will allow your computer to access more RAM, run applications more efficiently, and, in most cases, run both 32-bit and 64-bit programs.
Exceptions to this rule include system utilities and antivirus programs that are written specifically for a 32 or 64-bit operating system. In these cases, you will need to install the version of the software that corresponds to your OS (which may be different than your hardware). Additionally, device drivers are often written for specific operating systems, so it is important to install 32-bit drivers if you are running a 32-bit OS and 64-bit drivers if your operating system is 64-bit.

Q&A

Why is it so that 32 bit is limited to 4 GB RAM but it can easily support 1 TB HDD's? 
Ans. The problem is with addressing: the RAM addressing is done on per-byte basis, so 2^32 allows to make 4G bytes addressable.
The hard-drive addressing is done on per-sector basis. Each sector is 512 bytes long. Thus a single 32 bit value allows to address a sector in 2 TB disk.
To allow access for disks greater than 2TB the Operating System uses 64 bit sector addresses.
Hard drives don't have static physical wires that require an address space. Hard drives are dynamic, in that they have moving parts. At any given time, the OS doesn't have to address each byte on a hard drive. It can address some of it in memory while it is required (hence reading from disk to memory), then written back when it's not required. The hard drive controller has a driver that allows the OS to interface with the file system. File systems have an index, that is addressable and uses that to either load extended indexes or know where to seek to on the disk in order to obtain the data. This is why hard drives are slow compared to memory, because data access is a very mechanical process.
Think of your hard drive as a book. You could start reading each page to find what you are looking for, but that could take weeks. Instead, you will look at the index at the back of the book to get the page numbers that contain relevant information. You will then seek to those pages and read the information into your short term memory, where you will process the facts. At some point you will need to memorise something else, at which point you forget about the minor details for what you just read. Next time you want to access that information again, you flick to the index, look up the page number again and seek to the page in the book, where you read it into short term memory again.


Why does x86 represent 32bit when x64 represents 64bit?
Ans. Well, there once was a chip called 8086, with a cheaper version called 8088 that was used in a personal computer called IBM PC. An improved version of that chip was made and called 80186, though that wasn't a very popular version. However, an improved improved version was then made, and called 80286. Now, that was a very popular chip, in particular because it was used in a computer called IBM PC AT.
Later, Intel, which created and sold the 8086, 8088, 80186 and 80286 chips, all of which had a 16 bits architecture, saw the need to create a 32 bits chip to compete with similar offerings by others. To take advantage of its incumbent position, it made the new chip capable of running software made for the previously mentioned chips. Naturally, Intel called this new chip the 80386.
By then there were lots of computers using various versions of the Intel chips, and there were also non-Intel chips that were compatible with the Intel ones. So people started referring to them as 80x86.
After a while, Intel launched a new chip, but it decided to drop the 80, so it became the 486 instead of 80486. Likewise, people were dropping the "80" from the front of "80x86", and calling this stuff just x86.
Now, I'm pretty sure some will come and say Intel branded their chips x86 at such and such time, which they did, but I don't care.
The fact is that the ever-increasing middle digit gave rise to 80x86, and x86 came from that -- even if 80186 and 80286 were not 32 bits.
So, once Intel finally went 64 bits, what did it call its new architecture? Right! IA64! :-) It also retroactively renamed the x86 to IA32, so to speak. Only IA64 was not compatible with x86, I mean, IA32, so everyone ignored it.
And then came AMD, which decided the market wanted a 64 bits CPU that was compatible, to the extent possible, with the x86 family. As a marketing appeal, they called it the "x86-64" family, and they were hugely succesful. So much so that Intel ended up grudgingly following with their own 64 bits CPU based on x86.
Later, because people are lazy, the x86-64 became known simply as the x64.
So, in answer to your question, because x64 is shorter than x86-64.