在Java中byte類型數據在運算的問題


 在Java中,byte類型數據在運算之前要轉換成int類型數據。
比如:
byte a=1;
byte b=2;
byte c;
c=a+b; //這樣是計算不出c,是錯誤的
c=a+1; //這樣也是不能計算c的
c=64+1; //為什么這樣就能計算c,在Java中這是什么原理啊?

運算符對基本類型的影響

當使用+、-、*、/、%運算符對基本類型進行運算時,遵循如下規則:

只要兩個操作數中有一個是double類型的,另一個將會被轉換成double類型,並且結果也是double類型;
否則,只要兩個操作數中有一個是float類型的,另一個將會被轉換成float類型,並且結果也是float類型;
否則,只要兩個操作數中有一個是long類型的,另一個將會被轉換成long類型,並且結果也是long類型;
否則,兩個操作數(包括byte、short、int、char)都將會被轉換成int類型,並且結果也是int類型。

原文來自:雨楓技術教程網 http://www.fengfly.com
原文網址: http://www.fengfly.com/plus/view-170775-1.html

c=a+b時,符合第四個項,a+b的結果將轉為int類型,把int賦值給byte是不可以的
c=a+1時,同樣符合第四項
至於c=64+1,64+1是個在編譯時就可以確定的常量,而且范圍沒有超出byte的取值范圍,這個關系式就相當於c=65,因而不會報錯


免責聲明!

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



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