4-11.1 C++ 整型的隐式类型转换
- 整型在运算时小类型会自动转换为大类型【保证精度】
- 右值给左值赋值时,会被转换为左值类型
int i;
long long j;
int res = i+j; //i转换为long long,i+j的类型是long long,给res初始化时又转为int
- 有符号与无符号整型预算时,谁的类型大,容得下结果,就转换为谁,都能容下时以signed为主,保障精度
sizeof(unsigined type) >= sizeof(signed type)
: singned 转为 unsignedsizeof(unsigned type) < sizeof(signed type)
:看结果是否能被signed容下,可以则unsigned转为signed,否则反之long(32 bits) + unsigned int(32 bits)
:long ——> unsigned intlong(64 bits) + unsigned int(32 bits)
:unsigned int ——> long