LEETCODE 7 整数反转

class Solution {
public:
    int reverse(int x) {
        long long ret=0;
        long long cmp1=((long long)1<<31)-1;
        long long cmp2=-cmp1-1;
        while(x!=0)
        {
            ret=ret*10+x%10;
            if((ret>cmp1)||(ret<cmp2))
                return 0;
            x/=10;
        }
        return ret;
    }
};

注意不能直接写1<<32,因为默认1是int的,然后-优先级高于<<,用括号吧

用long long cmp1=((long long)1<<31)-1;

这题感觉描述的有问题,我还以为是输入范围也在-2^32 - 2^32-1,结果错了一次....

#include<limits.h>

#define INT_MAX 2147483647
#define INT_MIN (-INT_MAX - 1)

32位情况,C中int类型是32位的,范围是-2147483648到2147483647 。 

原文地址:https://www.cnblogs.com/lqerio/p/11745846.html