2013-01-15 72 views
0

b会返回什么?如果打印,字节b =(字节)0x8A的值是多少?

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

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

+6

当你编译和运行时你得到了什么输出? –

+0

你为什么不自己尝试,并给我们答案,它不会占用你的时间。 – Abubakkar

+3

我猜它是-128 + 10,因此有点像-118? – Ingo

回答

2

它会打印什么?

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

所以我期望:

Value-118 

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

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

但是,这并没有真正工作,要么因为Unicode代码点008A不是打印字符。 (而且值得注意的是,0x8A不是ASCII,因为真正的ASCII是7位字符集。)

+1

好吧,所以这是英语中有歧义的地方。这是一个小负数还是一个大负数?与-10相比,-100是一个大的负数还是一个小的负数? :p – thang

+1

有一个不明确的地方是英语,但数学英语没有歧义。小/大数是指数字的大小而不是其符号。 –

+0

不认识的人请详细解释 – sheetal