0
String boxVal = "FB";
Integer val = Integer.parseInt(boxVal, 16);
System.out.println(val); //prints out 251
byte sboxValue = (byte) val;
System.out.println("sboxValue = " + Integer.toHexString(sboxValue)); //fffffffb

最後の行に「fb」が表示されます。「fffffffb」と出力される理由がわかりません。私は何を間違っていますか?「fb」を出力するようにコードを修正するにはどうすればよいですか?

4

2 に答える 2

2

251 をバイトに変換すると、オーバーフローが発生します。バイトの最小値は -128 で、最大値は 127 (両端を含む) です。

ここを参照してください: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

于 2013-11-01T07:03:43.800 に答える