byte b;
b = (byte)200;
System.out.print(b);

とすると-56と表示されるんですがなぜその値なのでしょうか?

それから、longをfloatに型変換するのがなぜ拡大変換なのですか?
二つともビットは同じだと思うんですが・・・。