>>40
正しく計算できる
unsigned int と signed int -> unsigned int に格上げ = 符合が失われる
unsigned short と signed int -> signed int に格上げ = だいたいshort>int(環境依存だけど)だから何も失われない

>>41
MSコンパイラの拡張機能なのでどうでもいいことだけど、ビットフィールドでも同様のことが起こるのよ。