java中的字节到字符转换会产生不可预测的结果

时间:2016-11-03 05:54:31

标签: java

您好我刚遇到一个从byte转换为int的问题。 代码就像这样

byte b=(byte)-1;
System.out.println(b);
char c=(char) b;

System.out.println(c);
int i=c;
System.out.println(i);

我理解的是当我们将int -1转换为byte时,它将使得8位2对+1的补充,因此值将类似于1111 1111.当我们将其转换为基于MSB的char时,它将追加1或0。从char到int只是扩大转换就在那里。但我得到了这样的输出。

-1
?
65535

我不明白它为什么打印“?”在第二名。请帮我解决这个问题

0 个答案:

没有答案