Modulus works to get bottom bits (only), although I think value & 0x1ffff
expresses "take the bottom 17 bits" more directly than value % 131072
, and so is easier to understand as doing that.
The top 17 bits of a 32-bit unsigned value would be value & 0xffff8000
(if you want them still in their positions at the top), or value >> 15
if you want the top 17 bits of the value in the bottom 17 bits of the result.