前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java十进制数向十六进制数转换的三种方法

java十进制数向十六进制数转换的三种方法

原创
作者头像
IT工作者
发布2022-05-09 11:13:47
3.1K0
发布2022-05-09 11:13:47
举报
文章被收录于专栏:程序技术知识

第一种方法:

代码语言:javascript
复制
  Integer.toHexString( int i );

代码语言:javascript
复制
Integer.toString(int it,int radix)

其中Integer.toString(int i, int radix)包括Integer中的toBinaryString(int i)、toOctalString(int i)、toHexString(int i)。

第二种方法: 

代码语言:javascript
复制
      private static String decimalToHex(int decimal) {
        StringBuilder sb = new StringBuilder();
        do {
            int temp = decimal & 0xF;
            if (temp > 9) {
                sb.append((char) (temp - 10 + 'A'));
            } else {
                sb.append(temp);
            }
            decimal = decimal >>> 4;
        } while (decimal != 0);
        return sb.reverse().toString();
    }

 

第三种方法:

代码语言:javascript
复制
       public static String D2X(int d) {
        String x = "";
        if (d < 16) {
            x = change(d);
        } else {
            int c;
            int s = 0;
            int n = d;
            @SuppressWarnings("unused")
            int temp = d;
            while (n >= 16) {
                s++;
                n = n / 16;
            }
            String[] m = new String[s];
            int i = 0;
            do {
                c = d / 16;
                m[i++] = change(d % 16);
                d = c;
            } while (c >= 16);
            x = change(d);
            for (int j = m.length - 1; j >= 0; j--) {
                x += m[j];
            }
        }
        if (x.length() == 3) {
            x = "0" + x;
        } else if (x.length() == 2) {
            x = "00" + x;
        } else if (x.length() == 1) {
            x = "000" + x;
        }
        return x;
    }
 
    public static String change(int d) {
        String x = "";
        switch (d) {
        case 10:
            x = "A";
            break;
        case 11:
            x = "B";
            break;
        case 12:
            x = "C";
            break;
        case 13:
            x = "D";
            break;
        case 14:
            x = "E";
            break;
        case 15:
            x = "F";
            break;
        default:
            x = String.valueOf(d);
            break;
        }
        return x;
    }

这三种方法,第一种和第二种表现相同,而第三种负数的时候不行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档