今天上网查资料的时候发现一个有趣的代码:通过移位运算符计算unsigned int和int的取值范围。 #include <stdio.h>
int main() { printf("unsigned int 类型的数据的最大值是:%u\n", (unsigned int)-1); printf("int类型的数据的最大值是:%d\n", (int)((unsigned int)-1 >> 1U)); printf("int类型的数据的最小值是:%d\n", (int)~((unsigned int)-1 >> 1U));
return 0; }
这个代码对加深移位运算符的运用比较好。还有强制转类型。
|