Shifting the signed integer, so that 1 falls into the position of the sign bit or even more undefined in C, so the compiler can do the following:
0x1 << 32
32- int (0x1), 32 . , , 0x1_0000_0000 32- int, 0x0000_0000, , size_t, 64-: 0x0000_0000_0000_0000
0x1 << 31
, , , 1 . , 0x8000_0000, - INT_MIN, . , 64 , , . 0xffff_ffff_8000_0000, 32- , 64- .
64- :
((size_t)1) << 32
((size_t)1) << 31