short/char のサイズが両方とも 16 ビットであっても、この明示的な変換が異なる結果をもたらす理由を誰か教えてもらえますか?
package jh;
public class Main {
public static void main(String[] args) {
byte b = (byte)255;
System.out.println("Size of short: " + Short.SIZE);
System.out.println("Size of char: " + Character.SIZE);
System.out.println((int)((short)b));
System.out.println((int)((char)b));
}
}
出力:
Size of short: 16
Size of char: 16
-1
65535