Until the recent time there were only one type of microprocessor for Windows/Intel based computers - 32-bit. This type of microprocessors were produced by Intel and other manufacturers since 1985 year. The first 32-bit processor was Intel 386. In that time there were 64-bit processors of other companies - for example, 64-bit processor was used in the supercomputer Cray-1 since 1975 year. In our time, 64-bit processors are widely available at a very low cost, supported by Windows and Linux.
How to find out how many bits your processor is? The simplest way is to use the assembly instruction CPUID, that allows to get information about the processor. The description how to use this instruction you can find in wikipedia - put value 80000001h in EAX, then call instruction cpuid and then check out bit 29 of register EDX. If this bit is 1, it means that the processor is 64-bits.
This algorithm is used in a console utility iscpu64bits, that you can download here: iscpu64bits.zip.
After launching this utility, it shows the result:
C:\>iscpu64bits.exe The CPU is 64 bits Press any key to continue...
This is the result for 64-bit CPU working in the computer with 32-bit Windows. The same result we get for 64-bit CPU working in the computer with 64-bit Windows.
Another way how to find out if your CPU is 32-bit or 64-bit is to use the program CPU-Z, it can be downloaded on its site. Start the program, find in the CPU tab the field "Instructions". In the screenshot below you can see that the CPU is 64-bits (see x86-64):
There is an advice on the internet how to find out if your CPU is 32-bit or 64-bit, by using the parameter Identifier in this registry key:
But actually it is wrong - you can't get how many bits your processor is by using this parameter! For example, if 32-bit Windows XP working on 64-bit CPU, the parameter Identifier is:
x86 Family 6 Model 2 Stepping 3
One more wrong advice from the internet - by using the program msinfo32. Click Start --> Run (or press Win+R), then enter msinfo32.exe, and see the item System Type:
This is the answer for the 32-bit operating system Windows XP working on 64-bit CPU. As we can see, this method is wrong.
How to find out if your CPU is 32 or 64 Bit in Linux? It's very easy - just type in the terminal this command:
uname -a | getconf LONG_BIT
The answer (32 or 64) will tell how many bits is in your CPU.