I'm not really sure why you've got so many zeros there, but as an examplelilltroll wrote:SHL Shift left
Shifts a word left by y bits, filling the least significant y bits with zeros.
0xFFFF00000000 <<16 =? 0 != -1
Please correct me if I'm mistaken
0xFFFF0000 << 16 = 0
If you want to be really sure add some masks by all means.