类型转换
1.默认,数据类型有窄向宽的转
2.同级别,无符号比有符号宽
3.整型起
4.整数默认为int,小数默认为double
例子:
int main()
{
unsigned short a = 10;
unsigned int b = 10;
if(a < -1)
{
printf("a<-1\n");
}
else
{
printf("a>-1\n");
}
if(b < -1)
{
printf("b<-1\n");
}
else
{
printf("b>-1\n");
}
return 0;
//输出: a>-1
// b<-1
}
解释:a>-1,第一条:默认数据类型由窄向宽转换unsigned short 转换为int类型10>-1。b<-1,参见第二条同级别无符号比有符号宽,所以int转换为unsigned int在计算机中负数是用补码表示的,即反码加1 正数直接用原码表示,因为-1是负数就用补码表示为00000000 00000001 的反码 11111111 11111110+1 即 11111111 11111111 转换为十进制数为65535。所以b<-1。