2017-03-16 61 views

回答

0

这种分配失败,因为0xFFFF的是int文字:

short s = 0xffff; 

你必须将它转换为short,使其工作:

short s = (short) 0xffff; 

记住short是有符号类型,所以你可能没有得到你期望的价值。十六进制0xffff代表号码-1

System.out.println((short) 0xffff); // Prints -1. 
+0

但将它缩短会产生错误的值(溢出)。 – codenut

+0

它会的。虽然_wrong_是否取决于他的期望;) – marstran

+0

谢谢! @@@@@ –

-1

因为0xffff是int的格式,所以您需要将其转换为short。

short s= (short)0xffff; 
+2

有时候从IDE或编译器读取错误信息是件好事,它可以节省很多时间... – Vadim

+0

不是真的..你可以有'short s = 0xfff',一切都会好的! –

+0

尤其是3 f而不是所需4 ... – Vadim

4
在Java中 short

签署数据类型。因此,设置了所有位的值是-1。我怀疑这是你想要他值得...

+0

谢谢! @@@@@ –

0

我想我已经找到答案,整数是一个签名的数据类型,有一点用于把一个标志位,所以尽管短有8位,其实我们只是可以用7位来存储我们的日期,谢谢大家的回答,谢谢!

相关问题