溢出问题
32位的int类型数字范围是[-231,231-1],翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。
解决数字倒序问题,思路:x%10,x/10
一个大的数字%10就可以获的其个位上的数字,以此类型直到为0。
public static void main(String[] args){
int number = 54321;
}
public static int text(int x){
int opp;
int number1=0;
while(x!=0){
opp=x%10;
//数据溢出时放回0
//32位int型数字最大值个位是7
if(number1>Integer.MAX_VALUE/10||number1==Integer.MAX_VALUE&&opp>7)
return 0;
//32位int型数字最小值个位是-8
if(number1<Integer.MIN_VALUE/10||number1==Integer.MIN_VALUE&&opp<-8)
return 0;
number1=number1*10+opp;
x/=10;//每次循环结束,数字减少一位
return number1;
}
}
运行结果