b将返回什么?
byte b = (byte)0x8A;
System.out.println("Value"+b);
它会打印什么?什么时候价值会返回否定?
答案 0 :(得分:2)
它会打印什么?
可能不是你所期望的。在Java中,byte
是一个(带符号)数字而不是字符,因此当0x8A
转换为字符串时,您将获得一个小负数的十进制表示。
所以我期待:
Value-118
如果你想将0x8A
解释为一个字符,你应该写一下:
char c = (char) 0x8A;
System.out.println("Value" + c);
但这并不是真的有效,因为Unicode代码点008A不是打印字符。 (值得一提的是,0x8A不是ASCII,因为真正的ASCII是7位字符集。)