c语言类型转换的根本原则是必须保证数据不能丢失!
在这个基础上,总结两个基本原则.
1.若两种类型的比特数不同,转换成比特数高的类型
如:-1 > (unsigned char)1
会把(unsigned char)1转换成int型,变成1,表达式的值为false
2.若两种类型的比特数相同,且一种有符号,一种无符号,则转换成无符号类型。
如:-1 > (unsigned int)1
会把int型的-1转换成(unsigned int),变成4294967295,所以表达式的值为真。
在这个基础上,总结两个基本原则.
1.若两种类型的比特数不同,转换成比特数高的类型
如:-1 > (unsigned char)1
会把(unsigned char)1转换成int型,变成1,表达式的值为false
2.若两种类型的比特数相同,且一种有符号,一种无符号,则转换成无符号类型。
如:-1 > (unsigned int)1
会把int型的-1转换成(unsigned int),变成4294967295,所以表达式的值为真。