typeバイトは8ビットのメモリを占有し、char型は16ビットのメモリを占有しますが、charは符号なしであるため、byteからcharへの変換は狭くなります。これは、負の値を持つ型のバイトをcharに変換すると、負の値を失うため、情報が失われ、変換が狭くなっていることになります。byteからcharへの変換を狭くするJava
私はこれをJavaプログラムでテストしようとしています。
public class Test
{
public static void main (String[] args)
{
byte num = -1;
char test = (char)num;
System.out.println(test);
}
}
I試験を印刷する出力と予想:
1
これはだろう-1負の符号なしcharが符号なしであるためです。これは実際に出力されます:
?
私のプログラムには何か問題がありますか?
ちょうどデバッガを使って、 'test'が何を含んでいるのか見てみると分かります。 – Tom
https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.4。 –
(重複した質問には、この変換時のアンダーフローも含まれています) – Tom