In any CPU, there are functional units. Some load and store values. Others do work on integer values, and others work on floating point values. We're talking about integer values for now.
Lets say that we have a 64-bit machine with the ability to process one 64-bit integer value.
General idea:
a 32-bit integer in binary:
00000000000000000000000000000001 (that represents the integer 1).
00000000000000000000000000000010 (represents 2).
a 64-bit integer:
0000000000000000000000000000000000000000000000000000000000000001 (represents integer 1)
0000000000000000000000000000000000000000000000000000000000000010 (represents 2).
This 64-bit processor can do additions, multiplies, divides on integer values at "full speed." A 32-bit processor is technically capable of doing the same kind of work, but it requires software (I don't know how it works, but it's along the lines of "Big Int" -- someone correct me where I'm wrong here), and it's ugly and slow.
This 64-bit processor has only one functional integer unit, and can't compute two 32-bit values at the same time. If it could, we'd call it a SIMD machine (Single Instruction, Multiple Data) -- which is what iSSE, 3dNow!, iSSE2, and Enhanced 3dNow! are. "Regular" 64-bit processors don't do SIMD on 32-bit values (meaning they don't do work on 2 32-bit values at once, though instructions and the ability to do so can be added).
With 64-bit processors, "Regular" integer values are 64-bits, and so if you want to (1 + 2), you'll do :
0000000000000000000000000000000000000000000000000000000000000001(which is 1) +
0000000000000000000000000000000000000000000000000000000000000010(which is 2)
On a 32-bit machine, it would be
00000000000000000000000000000001 (which is 1) + 00000000000000000000000000000010 (which is 2).
I'm not sure if I'm helping or confusing....