0

b 会返回什么?

byte b = (byte)0x8A;
System.out.println("Value"+b);

它会打印什么?该值何时会返回否定?

4

1 回答 1

2

会打印什么??

可能不是你所期望的。在 Java 中 abyte是一个(有符号的)数字而不是一个字符,因此当0x8A转换为 String 时,您将得到一个小负数的十进制表示。

所以我期望:

Value-118

如果你想0x8A被解释为一个字符,你应该这样写:

char c = (char) 0x8A;
System.out.println("Value" + c);

但这也不起作用,因为 Unicode 代码点 008A 不是打印字符。(就其价值而言,0x8A 不是 ASCII,因为真正的 ASCII 是 7 位字符集。)

于 2013-01-15T13:45:13.523 回答