1. 程式人生 > 其它 >Java型別轉換

Java型別轉換

技術標籤:java

圖.基本資料型別級別

圖.基本資料型別級別

一、自動型別轉換

當低等級型別的量需要轉換成高等級型別的量時,會發生自動型別轉換。
在基本資料型別中,byte和char ,char和short之間不能自動轉換

1.整數型別之間的自動型別轉換

以下只列舉一種,其餘類似。

byte→short

//宣告並初始化一個byte型別的變數a
byte a = 12;
//將a賦值給short型別的b
short b = a;
//控制檯輸出b的值
System.out.println(b);
//控制檯內容如下
//12

2.整數型別到浮點型別的自動型別轉換

以下只列舉一種,其餘類似。

int→float

//宣告並初始化一個int型別的變數a
int a = 500; //將a賦值給float型別的b float b = a; //控制檯輸出b的值 System.out.println(b); //控制檯輸出內容如下 //500.0

3.字元型別到數字型別

字元型別轉換成數字型別,得到的數字是字元編碼表中字元對應的二進位制數轉換成的十進位制數,Java使用的是Unicode字符集。

3.1字元型別到整數型別的自動型別轉換

兩種情況類似,以下只列舉一種。
char→int

//宣告並初始化一個char型別的變數a
char a = 'a';
//將a賦值給int型別的b
int b = a;
//控制檯輸出b的值
System.out.println(b);
//控制檯輸出內容如下
//97

3.2字元型別到浮點型別的自動型別轉換

兩種情況類似,以下只列舉一種。
char→float

//宣告並初始化一個char型別的變數a
char a = 'a';
//將a賦值給float型別的b
float b = a;
//控制檯輸出b的值
System.out.println(b);
//控制檯輸出內容如下
//97.0

二、強制型別轉換

強制的型別轉換可能會造成精度丟失。
計算機只能通過二進位制讀取和儲存資料,所以Java只是用二進位制數來表示十進位制數。你設定的十進位制數在底層實際上是一個二進位制數。強制型別轉換,本質上是一個長的二進位制數的轉換成一個短的二進位制數。這個轉換過程,長的二進位制數通過擷取來變成短的二進位制數。Java用補碼來表示數字,例如十進位制數-128,它的16位補碼是1111111110000000。

1.發生精度丟失

//宣告並初始化一個int型別的變數a
int a = 128;//128的補碼為0000000010000000
//將a賦值給float型別的b
byte b = a;//強制轉換,擷取0000000010000000的後八位,得到10000000
//補碼為10000000的十進位制數是-128;
//控制檯輸出b的值
System.out.println(b);
//控制檯輸出內容如下
//-128

2.未發生精度丟失

當高等級的型別的量的值,在低等級量的值得取值範圍時,擷取的過程不會發生精度丟失。
同一個十進位制數,當這個數在低位整數型別的取值範圍中時,儲存在高位整數型別中的補碼和低位整數型別的補碼,區別如下:
負整數,例如-12存在16位的整數型別中,補碼為1111111111110100,存在8位的整數型別中補碼為11110100,當這個儲存-12的16位整數型別強制轉換成8位整數型別時,擷取後,補碼為11110100,故未發生精度丟失。
整數,例如12存在16位的整數型別中,補碼為0000000000001100,存在8位的整數型別中補碼為00001100,當這個儲存12的16位整數型別強制轉換成8位整數型別時,擷取後,補碼為00001100,故未發生精度丟失。
整數型別之間,其餘類似。

//宣告並初始化一個int型別的變數a
int a = 12;
//將a賦值給byte型別的b
byte b = a;//byte的取值範圍是-128~127,12在其中
//控制檯輸出b的值
System.out.println(b);
//控制檯內容如下
//12                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

三、表示式中的型別轉換

1.當只有short,byte,char,int型別的量參與運算時,所有量轉換成int型別再運算

//例如
char a = 'a';
byte b = 2;
short c = 3;
System.out.println(a+b+c);
//所有變數轉換成int型別再運算
//控制檯輸出:
//102

2.當參與運算的量有浮點型別的變數參與時,所有量轉換成最高階的型別,再運算

//例如
int a = 100;
byte b = 2;
double c = 3.0;
System.out.println(a+b+c);
//所有變數轉換成double型別再運算
//控制檯輸出:
//105.2