2017-03-16 60 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位來存儲我們的日期,謝謝大家的回答,謝謝!

相關問題