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