Conclusion
Getting started with 64-bit coding might be as simple as creating and configuring a virtual machine, or you can use a dedicated machine. In either case, the presence of the x86_64 symbol in the output from uname -a will tell you if your platform is 64-bit. Virtualization technology can help in giving you rapid access to specific 64-bit platforms, especially if you don't have a machine of that type available.
The x86_64 platform provides numerous benefits, such as backward compatibility and massively extended memory. This extra memory can be used by native 64-bit binaries as well as legacy 32-bit code.
Running 32-bit code on a 64-bit platform is convenient, but it should be used as a temporary measure only. This mode of deployment may require explicit 32-bit library installation and maintenance. Also, it may create a negative (and possibly unfair) customer impression that your technology is a little dated.
There are many issues to consider in porting legacy C/C++ code into a 64-bit environment. Data alignment is one such issue, as are pointer arithmetic and array indexing. Both of the latter relate to the extra memory available in the 64-bit world. Your legacy code may well have made assumptions about the potential sizes of arrays. These assumptions may need to be reviewed, particularly if you make use of the larger array sizes possible in 64-bit. Array index wraparound and overrun are two key areas to watch for when you move your code to a 64-bit platform.