前言
型別轉換是計算機中常見的操作,比如輸入輸出、資料相互之間的比較 等等,本篇就是介紹8種基本資料型別間相互轉換的,
一、什么是資料型別的轉換?
資料型別轉換就是把一種資料型別轉換成其他的資料型別,如:在計算1+2.3=3.2中,就是int型別轉換為float型別,再進行運算的,
二、資料型別的轉換方式
1.自動資料型別轉換
自動型別轉換,是指系統內部自動進行的資料型別轉換,用戶無需添加任何相關操作就能自動完成的資料型別轉換方式,一般是指由小到大,如:整型中按位元組長度byte—>short—>int—>long,浮點型的float—>double等,
1.整型間自動資料型別轉換
1.byte—>short、int、long
代碼如下(示例):
byte a = 10;
short b = a; // b = 10;
//byte c = b; 此時會報錯,因為short型別長度為2位元組,大于byte的1位元組
int c = a; // c = 10
long d = a; // d = 10
//同樣不可以反過來寫byte e = c;原因同上
2.short—>int、long
代碼如下(示例):
short a = 10;
int b = a; // b = 10
long c = a; // c = 10
//同樣不可以反過來寫,原因是int,long型別的長度大于short
3.int—>long
代碼如下(示例):
int a = 10;
long b = a; // b = 10
//同樣不可以反過來寫,原因是long型別的長度大于int
2.浮點型間自動資料型別轉換
1.float—>double
代碼如下(示例):
float a = 10.0f;
double b = a; // b = 10.0
//float c = b; 此時會報錯,因為double型別的資料精度大于float
3.整型—>浮點型自動資料型別轉換
整型—>浮點型資料型別自動轉換就是指系統自動進行的把整型的資料轉換為浮點型資料再進行資料處理的程序,最典型的例子就是整數加小數得出的結果是小數,如:2 + 3.6 = 5.6,
代碼如下(示例):
int i = 5;
float a = 10.0f;
float b = a + i; // b = 15.0
//int b = a + i; 此時會報錯,因為float型別的資料精度大于int
這里只給出了int型別自動轉化為float型別的例子,其他的整型的資料型別與float型別間的自動型別轉換的原理是一樣的,就只是把資料型別從int改為byte,short,long等,整型與double型別的自動資料型別轉換也是如此,就不一一列舉出來了,
2.強制資料型別轉換
強制資料型別轉換,指的是系統無法自動進行,要靠規定的語法來實作的資料型別轉換程序,
語法格式為:
需要的資料型別 變數名 = (需要的資料型別) 被轉換的資料型別的資料
1.整型間強制資料型別轉換
1.short、int、long—>byte
代碼如下(示例):
byte a = 10;
short b = a; // b = 10;
//byte c = b; 此時會報錯,因為short型別長度為2位元組,大于byte的1位元組
byte c = (byte)b; // c = 10
//此時,先進行強制資料型別轉換,把short型別的b強制轉換為byte,再賦值給c
其他的情況與此類似,不一一列舉,
2.浮點型間強制資料型別轉換
1.double—>float
代碼如下(示例):
double a = 10.0;
//float b = a; 報錯
float c = (float)a; // c = 10.0
//此時,先進行強制資料型別轉換,把double型別的a強制轉換為float型別,再賦值給c
3.整型與浮點型間強制資料型別轉換
1.float—>int
代碼如下(示例):
float a = 10.5;
//int b = a; 報錯
int c = (int)a; //此時,先進行強制資料型別轉換,把float型別的a強制轉換為int型別,再賦值給c
2.double—>int
代碼如下(示例):
double a = 10.5;
//int b = a; 報錯
int c = (int)a; //此時,先進行強制資料型別轉換,把double型別的a強制轉換為int型別,再賦值給c
這一種情況與上面的float相似
浮點型轉換為其他整型的情況與此類似,不一一列舉,
3.char與int間資料型別轉換
字符型char與int型別間有著單獨的編碼表使得每一個字符與一個整數對應,所以我單獨拿出來說,
1.char自動轉換為int
代碼如下(示例):
char a = 'c';
int b = 10;
System.out.println((a+b)); //109
//因為小寫字母c在ASCII編碼表中對應的數為99,所以,做加法運算時,用的是c對應的數字,可以理解為系統內部進行了自動資料型別轉換
2.強制資料型別轉換
代碼如下(示例):


總結
例如:以上就是今天要講的內容,本文僅僅簡單介紹了Java8種基本資料之間的資料型別轉換的兩種方式,給出的例子簡單明了,轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/196726.html
標籤:其他
上一篇:數字影像處理&OpenCV學習
下一篇:技術大牛教你自學編程如何避坑
