2014-04-29 157 views
0

我是C++程序員,我想了解Java數據類型。Java數據類型轉換

這有什麼錯下列要求:

byte: signed 1 byte 
short: signed 2 bytes 
int: signed 4 bytes 
long: signed 8 bytes 
float:   4 bytes 
double:   8 bytes 
boolean:   ? bytes 
char: unsigned 2 bytes 

我的東西轉換到更大或大小相等的數據類型而言,有1個例外,我可以從字符轉換爲4個或8個變量,但我不能轉換爲其他任何字符。

問題:什麼樣的規則適用於處理涉及char數據類型的轉換?

+3

這已經在這裏介紹了:[Java教程。原始數據類型](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html)以及[Java規範語言。第5章轉換和促銷](http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html) –

+0

@Luiggi門多薩:是的,我檢查了官方的java鏈接,但我是與char的異常混淆? – Luka

+0

你還沒有向我們說清楚你實際上困惑的是什麼。您應該編輯問題並明確說明您遇到的困難。 – Radiodef

回答

3

隱式數據類型轉換規則基於數字範圍。 char數據類型是唯一的無符號整型,並且不能表示其他數字類型可以使用的負值。例如,-1可以表示爲除char之外的任何數字類型,因此不能隱式轉換爲char。

您可以隨時使用雖顯式類型轉換:

char c = (char) -1; 

範圍,參數也是爲什麼你從64位長的「小」的32位浮點的隱式轉換。

+0

+1可能涉及到隱式轉換。我很習慣使我的轉換顯而易見,它從來沒有超過我的想法。 :) –