>>481
ちがう。ch=-128 (10000000) で
unsigned short が 16 ビットだとしたら、
左辺は 1111111110000000 になる。これを int (符号付き)
に promote (キャストではない) させる。
int が 32 bit だとしても、unsigned short からの
変換だから、左に 1 は補われない。ゆえに、
00000000000000001111111110000000
になる。