There's a good chance you have two similar folders in Windows, "C:\Program Files" and "C:\Program Files (x86)." Knowing that your installed programs are located inside the Program Files folder, you'll see that some of them are in one folder, and some in the other.

And if we ask you what the difference is between these folders, you will probably tell us that after the appearance of 64-bit Windows operating systems, Microsoft decided to separate the installed programs that run on 64-Bit from those that run on 32-bit. And so, 64-bit machines have both folders (compared to 32-bit machines that only have one Program Files) with 32-bit programs installed in the folder "C:\Program Files (x86)".
Windows 64-bit vs Windows 32-bit
64-bit Windows can and does run 32-bit applications using something called WOW64, which stands for "Windows 32-bit on Windows 64-bit."
When you run a 32-bit program on a 64-bit version of Windows, the WOW64 emulator redirects all files from “C:\Program Files” to “C:\Program Files (x86)”. So while the 32-bit program tries to access the program’s main file directory, it is actually redirected to Program Files (x86). 64-bit programs still use the regular Program Files folder.
Of course, 64-bit applications cannot run on a 32-bit Windows operating system, even if the machine is 64-bit (yes, 32-bit Windows can be installed on a 64-bit CPU and motherboard)
What's stored in each folder
In short, a 32-bit version of Windows simply has one folder, "C:\Program Files." This contains all of your installed programs, which are 32-bit.
On a 64-bit version of Windows, 64-bit programs are stored in “C:\Program Files.” 32-bit programs are stored in the “C:\Program Files (x86)” folder.
Why did they separate them?
For compatibility reasons. Because 32-bit programs can't know they're running on a 64-bit version of Windows, they separated them so that Windows could keep them away from 64-bit code.
32-bit programs cannot load 64-bit libraries (DLL files), and will crash if they try to load a particular DLL file and it is found for a 64-bit machine instead of its 32-bit counterpart. The same is true for 64-bit programs. Keeping the separation between different program files that are designed for different CPU architectures prevents errors from occurring.
For example, let's say Windows uses a single Program Files folder. A 32-bit application that needs a part of Office will start looking for a Microsoft Office DLL file located in C:\Program Files\Microsoft Office and will try to load it. However, if you had a 64-bit version of Microsoft Office installed, the application would not work properly and would most likely crash. With separate folders, it ensures that the application will not get confused finding the correct DLL, because the 64-bit version of Microsoft Office will be in C:\program files\Microsoft Office and the 32-bit application will be in C:\Program Files (x86)\Microsoft Office.
This also helps developers who build for both 32-bit and 64-bit architectures, especially if both need to be installed at the same time. The 32-bit version is automatically installed in C:\Program Files (x86), and the 64-bit version is automatically installed in the C:\Program Files folder.
Why is the 32-bit folder named (x86)?
You won’t always find the two different architectures listed as “32-bit” and “64-bit.” Instead, you’ll sometimes see them listed as “x86” and “x64” respectively. This is related back to when computers used Intel’s 8086 chip. The term x86 came from the fact that the early descendants of the 8086 also had names ending in “86.” The original chip was 16-bit, and the next version became 32-bit. So the term “x86” refers to either the 16-bit or 32-bit architecture. The newer 64-bit architecture is referred to as “x64” instead.
This means that in "Program Files (x86)" there are programs that use the older x86 CPU architecture. Also note that the 64-bit version of Windows cannot run 16-bit code.
Does any of this matter?
Usually none of this matters, and you probably don't care whether a program's files are stored in the Program Files folder or the Program Files (x86) folder. Windows automatically installs programs in the correct folder, so you don't have to decide. Your programs appear in the Start menu and work normally, no matter where they're installed. Both 32-bit and 64-bit programs should store their data in folder names like AppData and ProgramData, and not in any Program Files folder. Just let your programs decide automatically which Program Files folder to use.
If you use a portable program, it can run from any folder on your system, so you don't have to worry about where to put it. You can even put your portable apps in Dropbox or another type of cloud storage folder so they're available from all your computers.
Sometimes you need to know where a program is stored. For example, you might want to go to the installation folder of a program to back up some files. You need to know where to look.
If you're still not sure whether a program you've installed is 64-bit or not and you're looking for its installation folder, you may need to look in both program files folders to find it.
You can also take a look at Task Manager. There, 32-bit programs are listed with the addition “(32-bit)” right after their name, which gives you a clue that you’ll find them in C:\Program Files (x86).
