In everyday terms, the number of bits is like the number of digits in a number. If you are restricted to two digit numbers, there are only 100 possible values, 0 through 99. If you are restricted to three digit numbers, then there are only 1000 possible values, 0 to 999. Etc. And a computer nerd might write the ranges as 00 to 99 for two digit numbers and 000 to 999 for three digit numbers. This would be like the way numbers looked on the odometer on your car when the odometers were still mechanical instead of electronic. There would always be leading zeroes, and we usually do not use leading zeroes in every day life.
The number of bits affects computing in two different ways, and software developers usually have to be aware of these differences. One way is that it affects the maximum and minimum size of numbers and the precision of numbers when the numbers are fractions. The other way is that it affects the amount of memory that a program can use.
The more bits there are, the larger can be the numbers and the larger can be the amount of memory a program can use. For example, with 8 bits the numbers can go from 0 to 255 if they do not have signs and from -128 to +127 if they do have signs. And 8 bits can be used to access up to 256 bytes of memory. With 16 bits, the numbers can go from 0 to 65,535 if they do not have signs and from -32,768 to +32,767 if they do have signs. And 16 bits can be used to access up to 65,536 bytes of memory.
These numbers get so weird looking that we usually speak of K for Kilo, M for Mega, and G for Giga. Unlike in the real world where a K would be a thousand, an M would be a million, and a G would be a billion, with computers a K is 1024, an M is 1024 x 1024, and a G is 1024 x 1024 x 1024. So a K is a little bigger than a thousand, an M is a little bigger than a million, and a G is a little bigger than a billion.
The count of bits for numbers may not be the same as the number of bits for addressing memory. The first computer I ever worked on back in the 1960’s had up to 36 bits for numbers but only 15 bits for addressing memory. So numbers could go up to 64G (a little more than 64 billion) but memory could only go up to 32K (a little more than 32 thousand). That is truly tiny memory compared to modern computers.
Even on modern computers, the number of bits for numbers and the number of bits for memory doesn’t always match. For a while, modern computers had 32 bits for numbers and 32 bits for memory. So the bits for memory and the bits for numbers matched. That meant that that largest numbers and the largest memory was 4G - a little more than 4 billion. We would say that a computer with this much memory had 4 gigabytes of memory. And curiously, even though a 32 bit computer could have up to 4GB of memory, the 32 bit version of Windows would only allow programs to be up to 2.5GB of memory in size. Weird, I know.
But as modern computers became larger, they typically supported more bits for numbers than they did for memory. It was common until fairly recently that computers would support up to 64 bits for numbers and only 32 bits for memory. This is where we get into things like 32 bit Windows vs. 64 bit Windows and 32 bit RM vs. 64 bit RM. A 64 bit program can use much more memory than can a 32 bit program. And sometimes it is not easy just to magically convert a 32 bit program into a 64 bit program. It has to do with memory and if the program is using pointers to access memory. That’s because pointers can be 32 bits long or 64 bits long.
At the present time, all programs on a Mac have to be 64 bit. A modern Mac simply will not run 32 bit programs anymore. So all software for a Mac has had to be converted to be 64 bit. But Windows will still run both 32 bit software and 64 bit software. So some software for Windows is still 32 bit. In particular, RM itself was still 32 bit until fairly recently. It now comes in both a 32 bit version and a 64 bit version.
In theory, there shouldn’t be any difference in using the 32 bit version of RM vs. the 64 bit version of RM. In practice, the 64 bit version does not support direct import from Legacy Family Tree. That’s because Legacy Family Tree itself is still a 32 bit program and has not yet been converted to 64 bit. But in theory, everything else about the 32 bit RM should be identical to the 64 bit RM. For example, the 32 bit RM seems to be able to handle databases that are just as large as can be handled by the 64 bit RM. But users occasionally notice little foibles or quirks in one version that are not in the other. That’s why it’s always a good idea to post which version you are using when you post a question or a problem.
It’s not very easy to tell which version you are running. The easiest way I have found is to look at my active program list in Windows Task Manager. If it says 32 bit, it is 32 bit. If it doesn’t say anything about bits, it’s 64 bit. Another way to tell is to right click a shortcut for starting RM and click on Properties. If it is installed in Program Files, it is 64 bit. If it is installed in Program Files (x86), it is 32 bit. And if you simply “download RM”, you may not know which version you are getting and you are probably getting the 32-bit version.