How many bits for offset/frame/page I'm working on the following exercise and can't get the calculations right:

Assume an OS uses:


33 bits for physical address
34 bits for logical address
2KB frame size


Calculate:


How many bits are used for the offset 
How many bits are used to identify a frame
How many bits are used to identify a page


And then:
Assuming the page tables include the valid and dirty(edit) bit, calculate the size (in bits) of a process' page table using all pages.

I have a hard time understanding this type of calculation and will greatly appreciate any help.
The frame size is 2KB. Assuming memory is byte-addressable, we need an offset into 2000 different bytes. 2000 is approximately (2^10)*2 = 2^11, so we need 11 bits for the frame offset.

Then, we can easily calculate that 33 - 11 = 22 bits are used to identify  a physical page (frame), and 34 - 11 = 23 bits are needed to identify a virtual page.