本帖最后由 uc_c++ 于 2012-4-27 13:04 编辑
整型提升。
标准C规定 ~运算符的操作数至少为int,不满int,提升至int或者unsigned int,再参与运算。
换句话说:short,unsigned short和char,unsigned char,signed char根本就没有~运算。
short,unsigned short和char,unsigned char,signed char要想参与运算,必须由编译器提升至int或者unsigned int,才能参与运算。
这个提升是由编译器自动完成的,叫做 整型提升。
unsigned short z=0;
~z等价于(~((int)z)),结果为(int)-1
|