Any value that undergoes arithmetic in Java is first carried over to a higher type, which can span both operands. Both operands are passed in intif they are even smaller.
b int 0xFFFFFFCC. , 8 , 0xFFFFFF00 , , . , 16 .
, 0xFF :
(short)(((a&0xFF)<<8)|(b&0xFF))