您的位置:首页 > 编程语言 > Java开发

Java Long 在Integer的overflow的范围overflow

2015-01-11 04:58 483 查看
为了防止Integer overflow。利用long存储数据

public int reverse(int x) {

        ArrayList <Integer> list = new ArrayList();

        while( x != 0){

            list.add(x % 10);

            x /= 10;

        }

       

        long result =0;

        int ten = 1;

        for(int i = list.size() - 1;i >= 0;i--){

            result += ten * list.get(i);

            ten *= 10;

            System.out.println(result);

            if(result > Integer.MAX_VALUE|| result < Integer.MIN_VALUE)

                return 0;

        }

        

        return (int) (long) result;
    }

但是当数值超越了int的最大值的时候,并没有返回0.

正确的做法是

   result += (long)ten * list.get(i);

将其强制转换成long
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java long overflow