強制轉換(基本語法)


強制類型轉換;

特點:代碼需要進行特殊的格式處理,不能自動完成。

格式:范圍小的類型,范圍小的變量名 =(范圍小的類型) 原本范圍大的數據。

例如       int num =100L;

              int num = (int) 100L;  注意:右邊那個數據(100L)不要超出左邊類型的范圍,否則會溢出。

 

 

 

例題1:

long強制轉換為int類型;

int num2 =(int) 6000000000(L);

sout............(num2);

結果; 1705032704.

 

原因;int 的取值21億,但60億以經超出范圍,所以溢出了,就導致結果是17億多。

 

 

 

char zhifu = 'A';

sout..................(zhifu + 1);

結果:66

這是一個字符變量, 里面是大寫字母A,66也是大寫字母A被加了1后 才得到的66, 那原本就是65,

計算機的底層會用一個數字(二進制)來代表字符A, 就是65.

一但char類型進行了數字運算,那么字符就會按照一定的規則翻譯成功為一個數字。

 

 

 

 

 

例題2:

double強制轉換int類型;

int num3 = (int) 3.9;

sout....................(num3);

結果是  3.

原因;  int 是整數型的, 但3.9的int經過轉換的話,那么只能保留整數3。

 

 

@@強制類型的轉換一般不推薦使用,因有可能發生精度損失,數據溢出。

 

 

 

 

 

@@@   byte  short   char 這三類型都可以發生數學運算,例如加法" + ".

              byte  short   chat 這三類型在運算的時候。都會被首先提升成為  int 類型,然后再進行計算 

              boolean   類型不能發生數據類型轉換。

   

 

 

byte +short    =>   int +int   => int

byte num = 40;

short num1 = 60;

short  + resulf = (short)(num +num1);

sout ........................(resulf);

結果; 100,   

 

int強制轉換為 short: 注意必須保證邏輯上真實大小本來就沒有超出short范圍否則會發生數據溢出。

 

 

 

 

 

補充點。

------------------------------------------------

原:

char   zifu  = 'I';

sout ......................(zifu  + 0);

結果;49

 

簡化后;

char   zifu   =   'c';                //左側是int類型。 右邊是char類型。

int   num  =   zifu;                //char   => int   確實是從小到大。

sout....................(num);      //發生了自動類型轉變。

結果; 99。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM