關於整型提升,無符號類型與有符號類型之間的隱式轉換


關於整型與浮點型之間的轉換,這里就不說了

int x=0;

float y=0.0

x+y,肯定是直接轉換成為浮點型了

 

在這里整理一下關於整型之間的類型轉換

首先,要明晰什么是整型 

整型從基本類型來分有,整型,char型,bool型

從符號來分,又可以分為無符號類型和有符號類型

首先是:

都是有符號類型:

那就往最大的那個類型轉換

如:short x;

  int y;

  long long z;

 x+y+z;

轉換過程是:x先轉換為int ,與y相加,得到的結果再轉換為longlong 類型

都是無符號類型:

還是往最大的那個類型轉換

如 unsigned int x;

unsigned short y;

x+y;

肯定是y轉換為unsigned int 類型

 

一個是有符號類型,一個是無符號類型

這個時候就看那個類型的空間更大

如果無符號類型空間>=有符號類型,那么有符號類型就向無符號類型轉換

如果無符號類型<有符號類型,那么無符號類型就向有符號類型轉換


如 unsigned int x;

int y;

x+y;

那么,y先轉換為unsigned int,這個時候,如果是負數,那么mod%2^32


unsigned short x;

int y;

x就會轉換為 int類型


免責聲明!

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



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