目录
问题:无法解释代码问题
出现场景:Leetcode07 整数反转
int reverse(int x){
long ret = 0;
while (x){
ret = ret * 10 + (x % 10);
x = x/10;
}
/* ------------------------------------------------------------------------- */
return (ret > ~((long)1<<31) || ret < ((long)1<<31))?0:ret;
/* ------------------------------------------------------------------------- */
}
上述代码运行报错,但是下述代码成立(将上述代码的大于号与小于号互换,成立)
int reverse(int x){
long ret = 0;
while (x){
ret = ret * 10 + (x % 10);
x = x/10;
}
/* ------------------------------------------------------------------------- */
return ret < INT_MIN || ret > INT_MAX?0:ret;
/* ------------------------------------------------------------------------- */
}