首先明確這幾種數據類的取值範圍:
byte: -128~127
short: -2^15~2^15-1
char: 0~65536
int: -2^31~2^31-1
請看以下代碼:
byte b = 100;
short s = b; //正確,因爲byte的取值範圍在short取值範圍之內。
char c = b; //錯誤,因爲byte的取值範圍不完全在char的取值範圍內。
c = s; //錯誤,因爲short的取值範圍不完全在char的取值範圍內。
int x = b; //正確,因爲byte的取值範圍在int取值範圍之內。
x = s ; //正確,因爲short的取值範圍在int取值範圍之內。
x = c; //正確,因爲char的取值範圍在int取值範圍之內。