判断数据是否溢出

public int reverse(int x){
    int size=0;
    int result=0;
    boolean boo=true;
    if (x==0){
        return 0;
    }
    int temp=x;
    while (temp!=0){
        temp/=10;
        // 注意:这个判断不能在while循环之前,因为可能存在溢出问题
        if (temp<0){
            temp=-temp;
            boo=false;
        }
        size++;
    }
    int[]arr=new int[size];
    for (int i=0;i<size;i++){
        arr[i]=Math.abs(x%10);
        x/=10;
    }
    int num=1;
    for (int i=size-1;i>=0;i--){
        result+=arr[i]*num;
        num*=10;
    }
    // 判断数据是否溢出。
    // 若没有溢出,最后数据的个位数应该是变换之前数据的最高位
    // 若不是,就说明数据溢出了,直接返回0
    if (arr[size-1]!=result%10){
        return 0;
    }
    return boo?result:(0-result);
}

 // 判断数据是否溢出。
    // 若没有溢出,最后数据的个位数应该是变换之前数据的最高位
    // 若不是,就说明数据溢出了,直接返回0
    if (arr[size-1]!=result%10){
        return 0;
    }

posted @   晚生小白  阅读(169)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 提示词工程——AI应用必不可少的技术
· 地球OL攻略 —— 某应届生求职总结
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示