1、提出问题
从数学的角度,如果x==-x,那么当且仅当x=0的时候才成立。
那么在计算机的角度,是否存在非零的x,使上式成立呢?
直接给结果:
当x为有符号整数的最小值时,计算机的运行结果是x==-x
C语音的int对应的是-2147483648。short和long对应的也是其最小值。
C语言取负数的操作是取反加1,所以对上面的数字取反加一后,得到的结果和原来一样。
编译器认为该操作合法。
2、python与C
在python中,int的最小值是按64位算的,而且似乎永远也不会溢出。
所以在python中,只有x=0时,才有x==-x