m********a 发帖数: 128 | 1 如果overflow时,怎么处理才最合适,
看了网上有不同的处理方式,有的用long 来求解,然后化成int,感觉也不是特别理想
~ 如果overflow超过long的范围就不能处理了
好像reverse integer那道题也涉及到这个点
请大牛指教下! |
f*****g 发帖数: 887 | |
l*****a 发帖数: 14598 | 3 +1
【在 f*****g 的大作中提到】 : 超了就报overflow不就行了,呵呵
|
m********a 发帖数: 128 | 4 那有什么比较好的overflow detection的方法?
不是用 long 来detect int的overflow这种类似的方法~~
【在 l*****a 的大作中提到】 : +1
|
l*****a 发帖数: 14598 | 5 u want to do
result=result*10+cur-'0';
then need to make sure that it is less than or equal to Integer.MAX_VALUE
if(result
(result==Integer.MAX_VALUE/10&&cur-'0'<=Integer.MAX_VALUE%10)) {
result=result*10+cur-'0';
} else {
//overflow
}
【在 m********a 的大作中提到】 : 那有什么比较好的overflow detection的方法? : 不是用 long 来detect int的overflow这种类似的方法~~
|
m********a 发帖数: 128 | 6 Nice. Thanks!
【在 l*****a 的大作中提到】 : u want to do : result=result*10+cur-'0'; : then need to make sure that it is less than or equal to Integer.MAX_VALUE : if(result: (result==Integer.MAX_VALUE/10&&cur-'0'<=Integer.MAX_VALUE%10)) { : result=result*10+cur-'0'; : } else { : //overflow : }
|