混合型別運算規則:
在表示式遇到不同資料型別的混合運算時,要求不同型別的資料要先轉換成同一型別然後才能進行運算。預設編譯器會有個規則進行自動轉換:
自動轉換遵循以下規則:
1) 若參與運算的兩個引數型別不同,則先轉換成同一型別,然後再進行運算;
2) 按照資料長度增加的方向進行(即:由 少位元組型別 向 多位元組型別 轉換),以保證精度不丟失;
3) 所有的浮點運算都是以雙精度進行的,即使僅含 float 單精度量運算的表示式,也要先轉換成 double 型別,再作運算;
4) char 型別 和 short 型別參與運算時,必須先轉換成 int 型別,也就是說最小的運算整形單位是 int;
5) 在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別(右隨左變)。如果右邊的資料型別的長度比左邊長時,將丟失一部分資料,這樣會降低精度,例如:int x = 2.5;
下圖表示了型別自動轉換的規則:
例如:2.5+3,這裡面兩個數,第乙個是浮點型別,我們可以認為是float,第二個是整形,我們可以認為是int,這裡如果將兩個數都轉換成int整形,那麼float型別的2.5肯定表示不了,整形沒有小數點,所以如果這樣轉的話就會丟資料,2.5變成2了,所以不可取。那麼就得按照float來轉,將3轉換成float型別的3.0,所以結果就是double型別的3.5了,大家明白了嗎?
混合運算規則
重要規則 byte short char 做混合運算時,先各自轉換為 int 型別,再做運算 以下在編譯期就出錯,因為編譯器只檢查語法,jvm不允許 int 轉換為 byte 丟失精度 雖然結果為30,但是運算是在執行期 byte a 10 short b 20 byte c a b 報錯 syst...
C語音混合運算規則
c語言中的基本資料型別 資料之間的混合運算 在程式執行中,變數的資料型別是可以轉換的,轉換方式有兩種。一 自動轉換 自動轉換發生在不同資料型別的量運算時,由編譯系統自動完成。1.自動轉換遵循的規則 1 若參與運算的量的資料型別不同,則先轉換成同一型別,然後進行運算。2 轉換資料始終往長度增加的方向進...
混合運算的型別轉換
1616 3 張宇 16 10 17 連續十六天總結 a.混合運算的型別轉換 100 b.這節學的內容和以前學的有很多是重複的,比如雙精度的和單精度的數相運算的結果是雙精度。我們也可以將結果強行進行型別轉換,資料型別 表示式 或 資料型別 表示式 運算時會進行隱性運算,有符號向無符號的轉化。精度低的...