About integer numbers downcasts in C, e.g.
An int value 000F\'E000 downcast to short or unsigned short will become E000. shor
000F\'E000
E000
shor
Downcast cuts the bits, up-cast depends on "signedness". Up-cast on unsigned types adds zero bits to the value, up-cast on signed types replicates the sign bit. In this way, the expression has the same value before and after an upcast.