1. 程式人生 > >C++基礎知識(三)--數據類型轉換--混合運算類型轉換--賦值類型轉換--強制類型轉換

C++基礎知識(三)--數據類型轉換--混合運算類型轉換--賦值類型轉換--強制類型轉換

類型轉換 雙精度 基礎 code 變量 ascii asc 整數 pre

系統自動類型轉換:混合運算的類型轉換,賦值類型轉換,強制類型轉換

一、混合運算的類型轉換規則

  1.運算過程中,當某個二元運算符兩邊的操作數類型不同但屬於類型相容時,系統先將精度低的操作數變換到與另一個操作數精度相同,然後再進行運算。

    混合運算類型轉換規則:

技術分享圖片

  • 字符可以作為整數參與數值運算,整數值為其ASCII碼
  • 操作數為字符或短整形時,系統自動轉換成整形。
  • 操作數為實型時,系統自動轉換成雙精度型。
  • 其余情況,當兩數操作數類型不同時,將精度低(或表示範圍小的)的操作數的數據類型變換到與另一操作數類型相同再進行運算

  2.example

 1 char c1,c2;
 2 int
i1,i2; 3 float x1,x2; 4 x2=c1*i1+c1*x1+c1*c2; 5 6 轉換過程: c1轉換成整型,完成c1*i1,結果表示為t1; 7 c1與x1均轉換成雙精度型,完成c1*x1,結果表示為t2; 8 c1與c2均轉換成整型,完成c1*c2,結果表示為t3; 9 然後:將t1轉換成雙精度型,完成t1+t2,結果表示為t4; 10 再將t3轉換成雙精度型,完成t3+t4, 11 最後:結果轉換成單精度型賦值給x2




二、賦值類型轉換

   1.系統自動進行類型轉換規則:

  • 實型數賦值給整型變量:取整,註意溢出
  • 整型數賦值給實型變量:先轉換為實型數
  • 字符型數賦值給整型變量:ASCII碼為依據,分為兩種情況,符號位是0/1時不同。
  • 絕對值較大的數賦值給表達範圍較小的數據類型時,註意溢出

      在賦值運算中,當左值與右值類型不一致時,系統將按照左值的類型,自動進行強制轉換。

C++基礎知識(三)--數據類型轉換--混合運算類型轉換--賦值類型轉換--強制類型轉換