I'm happy to help you! Thank god I helped at least for someone at this forum
I use nanoTime() because it is very precise, and I divide it by 1000000000.f so that it would convert it to seconds. So that everything that you multiply by deltaTime variable will return, in this case, the amount of pixels it should move in this frame so that by adding up all frames per second, it will move exact value you specified in the left side, for example:
value = 150 * deltaTime; // this will increase the value variable by 150 every second, value1 = 45.2 * deltaTime; // this will increase the value1 variable by 45.2 every second.
I don't really know how to explain this in the right way.
And about 32bit and 64bit systems, I don't know why SHOUDLN'T it work. 32 bit and 64 bit only means that your computer's bus width is 32 or 64 bit, and it determines how much different RAM addresses your computer can recognize. So in reality it has nothing to do with performance of your computer, let alone the game which you are making.
I hope that answered all of your questions, if not, tell me what you didn't understand yet.