如果我将一个角色转换为byte然后再回到char那个角色,那个角色会神秘地消失并成为别的东西.这怎么可能?
这是代码:
char a = 'È'; // line 1
byte b = (byte)a; // line 2
char c = (char)b; // line 3
System.out.println((char)c + " " + (int)c);
Run Code Online (Sandbox Code Playgroud)
一直到第2行一切都很好:
在第1行,我可以在控制台中打印"a",它会显示"È".
在第2行,我可以在控制台中打印"b",它会显示-56,即200,因为字节已签名.200是"È".所以它仍然很好.
但第3行有什么不对?"c"成为别的东西,程序打印出来? 65480.这是完全不同的东西.
我应该在第3行写什么才能得到正确的结果?