[小技巧]如何得到C语言中int最大值
杰拉斯 | 时间:2012-10-29, Mon | 16,854 views编程算法
只需一小句代码,如下:
printf("%d\n", ~(unsigned int)0 / 2);
分析:
当无符号0以二进制储存在内存中的时候,每一位都为0,以32位int为例,(unsigned int)0的二进制为:
00000000000000000000000000000000
按位取反(~)后,变成:
11111111111111111111111111111111
此时的十进制为:
4294967295
除以2(因为int类型中有一半表示负数且比正数多一个)之后为:
2147483647
即为32位int类型最大值。
如需转载请注明出处:杰拉斯的博客
当前暂无评论 »