在网上看到一段神奇的代码
func getMinInt {
return 1 << 31;
}
func getMaxInt {
return (1 << 31) - 1;
}
然后我用Objective-c 测试了下,代码如下:
最后得到结果: - 2147483648
2147483647
我们知道int 一般在目前的编译中是32位的,1<<31 得到的二进制是 10000000 00000000 00000000 00000000,第一位是符号位,1表示负数,但是后面都是0之后,不是-0吗? 其实不然,因为0没有没有正负, 0在计算机中用00000000 00000000 00000000 00000000 来表示,那么10000000 00000000 00000000 00000000有表示什么呢,从上面的结果可以很显然的看到,用来表示int的最小整数 - 2147483648 。
done。