In general, it's a good idea to make things unsigned if you're doing bit shifting, but in this case, it makes no difference -- bits 20 through 31 are guaranteed to be zero because of how you create the packed version, so you CAN'T have problems unpacking because of it.