>>643
内部で Big endian (上位桁が下位アドレスに入る形式) で数値を扱っている
マシンならお望み通りになる。Little endian (下位桁が下位アドレスに入る
形式) のマシンの場合は正の整数の値の場合 short を long に入れても値に
変化はない。図にするとこうだ。

上位addr         下位addr
00000000 00000000 00000100 00000000
|-------------- long -------------|
         |------short-----|

ずれているかも知れないが脳内で修正しろ。