您的位置 首页 技术

java实现整数反转

一、将 int 整数通过 String 转换,溢出捕获 class Solution { public int reverse(int x) { long nums = 0; in…

一、将 int 整数通过 String 转换,溢出捕获

class Solution {    public int reverse(int x) {     long nums = 0;     int temp = 1;     try {        temp = x / Math.abs(x);        StringBuilder num = new StringBuilder();        num.append(Math.abs(x));        nums = Long.parseLong(num.reverse().toString());    if(nums > Math.pow(2, 31) - 1) {    return 0;    }        } catch (Exception e) {// TODO: handle exception        return 0;}    return (int)nums*temp;    }}

字符串转换的效率较低且使用较多库函数。

(推荐学习视频教程:java视频教程)

二、取余方式

class Solution {    public int reverse(int x) {    int ans = 0;    while(x != 0) {    // 判断溢出    if((ans * 10) / 10 != ans) {    ans = 0;    break;    }    // ans*10 没有溢出    ans = ans * 10 + x % 10;    x /= 10;    }    return ans;    }}

(ans * 10) / 10 其中的 ans*10 ,java虚拟机内部实际上是进行了数值类型提升,即溢出时,用long类型数据暂时存储,最后通过变窄转换,保留低32位数值得到 (ans * 10) / 10 != ans 。因此是不能满足只存储32位整数的条件的。

相关文章教程推荐:java入门教程

以上就是java实现整数反转的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/29586.html

为您推荐

返回顶部