爲什麼我們不能通過一個char
值作爲參數傳遞給接受一個short
參數的任何方法,而我們可以在char
值傳遞給它的參數是int
類型的另一種方法?爲什麼類型鑄造不會發生從char
到short
,因爲尺寸是相等的?我希望short也可以存儲與short
一樣多的值。類型從CHAR在Java中鑄造短
回答
爲什麼我們不能通過一個
char
值作爲參數傳遞給任何方法接受一個short
參數
因爲有從char
到short
在調用上下文的隱式轉換。
而我們可以通過一個
char
值到其參數爲int
類型的另一種方法?
這是因爲有是從char
到int
在調用上下文的隱式轉換。
爲什麼類型鑄造沒有發生從
char
到short
,考慮到尺寸是相等的?我希望short也可以存儲與short
一樣多的值。
雖然char
和short
是相同的大小,char
是無符號,而short
簽署。這就是爲什麼沒有從char
到short
的隱式轉換。
從char
到int
的轉化是一個加寬而來自char
到short
轉換原語轉換(JLS 5.1.2)是變窄原語轉換(JLS 5.1.3)。特別是(重點煤礦):
炭的收縮轉換爲整數類型T同樣簡單地丟棄所有,但n個最低階位,其中n是用於表示類型T. 中的位的數目除了可能丟失有關數值大小的信息之外,這可能會導致結果值爲負數,即使chars表示16位無符號整數值。
Java規範表示:
此外,如果表達式的類型是字節的恆定表達(§15.28), 短,char或INT:
的基本收縮如果變量的類型是byte,short或char,則可以使用轉換,並且常量表達式的值可以用變量的類型表示。
Char的最小值爲0,最大值爲65,535。
Short的最小值爲-32,768,最大值爲32,767。
整數的最小值爲-2,147,483,648,最大值爲2,147,483,647。
所以char可以適合整數,但不能簡寫,這就是爲什麼你應該向java保證你想在這裏進行類型轉換。
簡短以及整數都可以保存符號和無符號值,但類型轉換髮生在整數的情況下,但不簡短 –
是的。 Char的最小值爲0,最大值爲65,535。 Short的最小值爲-32,768,最大值爲32,767。整數的最小值爲-2,147,483,648,最大值爲2,147,483,647。所以char可以適合整數,但不能簡寫。 – Max
是的......我知道了。謝謝了很多 –
- 1. 在Java中的類型鑄造/鑄造
- 2. 鑄造到unsigned char類型
- 3. Java類型鑄造
- 4. 鑄造從類型類型
- 5. 在Java中鑄造int到char
- 6. 鑄造詮釋unsigned char型
- 7. Java編程,類型鑄造
- 8. 鑄造父類型 - Java的
- 9. 在Java中鑄造不兼容類型
- 10. 鑄造類型在java中的方法
- 11. 在XAML中鑄造類型
- 12. 鑄造類型
- 13. Java泛型 - 類型鑄造問題
- 14. Java泛型 - 錯誤鑄造泛型類
- 15. Java泛型類型擦除鑄造
- 16. 鑄造的char *到char []
- 17. java - 鑄造泛型
- 18. 鑄造u_int32到char
- 19. Android Java類鑄造
- 20. flex3類型鑄造
- 21. 類型鑄造datetime
- 22. SQL類型鑄造
- 23. Windbg類型鑄造
- 24. Python類型鑄造
- 25. Oracle類型鑄造
- 26. VB.NET - 鑄造類型
- 27. JodaTime類型鑄造
- 28. 從字符串中鑄造類型
- 29. 在c中鑄造泛型類型#
- 30. 類型鑄造字符無符號短短
我已經修復了大部分問題,以更好地閱讀英文,但我不明白最後一句:「我希望short也可以存儲足夠多的值以滿足短小的要求」,所以我已經將其作爲它是... –