关于整型提升,无符号类型与有符号类型之间的隐式转换
关于整型与浮点型之间的转换,这里就不说了
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类型
亲爱的听众朋友我是你的代班DJ