宽数据类型和窄数据类型之间的转换
首先,从一张图看看各个数据类型之间的大小,从上往下依次是数据类型从宽往窄。

1、将窄的数据类型转换为宽的数据类型
窄的数据类型默认转宽的数据类型
同类型的数据无符号比有符号宽
例如:int 和unsigned int比较,unsigned int的数据类型宽


上面程序中,a和-1进行比较就是unsigned int 型和int型进行比较,无符号的unsigned int 型比int型数据类型宽,所以把int型-1转换成unsigned int 型,2的32次方应该是个很大很大的数,总之比10要大,所以输出a<-1.
b和-1进行比较是unsigned short 型和int型进行比较,都化为int型就是10和-1比较,输出b>-1;
整型起,低于整型字节的数据类型至少变为整型
窄的数据类型变宽的数据类型补符号位(有符号则左边补符号位,无符号则右边补0,类似右移)
2、宽数据类型转换为窄数据类型,保留低数据