Just for completeness, here's how the 64-bit translation mechanism looks like.
The idea is the same as a 32-bit version,
but there's simply more tables and more indirections.
So there's not just one page directory, there may be many,
512 to be exact, and they are pointed to be page directory pointers,
which is pointed to by a page map level 4.
That's the top level structure that is pointed to by
the CR3 register of the processor,
that's the only structure that's guaranteed to be
in physical memory at all times, because we have to start from somewhere.
All the others may be paged out as well,
by the way, and also the page tables in the 32-bit version.
So there are more indirections here to conserve memory
because we may not need all that address space,
but the idea is the same, finally there are the last 12 bits,
which are always the offset into the page that is
selected by the other data structures here,
and finally pointing to a particular byte in memory.
So the idea is the same, just much more complicated, but don't worry about it, the CPU knows how to do that.