一招搞定进制转换--java篇

java中进制转化只需要记住这两个方法,后续再遇到进制转换的问题,轻松破解!

进制转换的核心就是:

其他进制---》十进制---》其他进制

1、其他进制转成十进制

valueOf() 方法

该方法有以下几种语法格式:

static Integer valueOf(int i)
static Integer valueOf(String s)
static Integer valueOf(String s, int radix)

参数

  • i -- Integer 对象的整数。

  • s -- Integer 对象的字符串。

  • radix --在解析字符串 s 时使用的进制数,用于指定使用的进制数。

返回值

  • Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。

  • Integer valueOf(String s):返回保存指定的 String 的值的 Integer 对象。

  • Integer valueOf(String s, int radix): 返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。

例子

复制代码
public static void main(String[] args) {
        System.out.println(Integer.valueOf("25",16)); // 16进制的25转成10进制的值
        System.out.println(Integer.valueOf("25",8)); // 8进制的25转成10进制的值
        System.out.println(Integer.valueOf("25",10)); // 10进制的25转成10进制的值
    }
// 输出结果
37
21
25
复制代码

或者使用Integer.parseInt()方法

public static void main(String[] args) {
        System.out.println(Integer.parseInt("25",16));
        System.out.println(Integer.parseInt("25",8));
        System.out.println(Integer.parseInt("25",10));
    }

2、十进制转成其他进制

该方法有以下几种语法格式:

String toString()
static String toString(int i)

参数

  • i -- 要转换的整数。

返回值

  • toString(): 返回表示 Integer 值的 String 对象。

  • toString(int i): 返回表示指定 int 的 String 对象。

例子

public static void main(String[] args) {
        System.out.println(Integer.toString(25,2)); // 将10进制的25转成2进制的值
        System.out.println(Integer.toString(25,8)); // 将10进制的25转成8进制的值
        System.out.println(Integer.toString(25,16)); // 将10进制的25转成16进制的值
        System.out.println(Integer.toString(25,12)); // 将10进制的25转成12进制的值
    }

或者使用常用的转进制的方法

public static void main(String[] args) {
        System.out.println(Integer.toBinaryString(25)); // 将10进制的25转成2进制的值
        System.out.println(Integer.toOctalString(25)); // 将10进制的25转成8进制的值
        System.out.println(Integer.toHexString(25)); // 将10进制的25转成16进制的值
    }

综合上面这个两种方法,我们可以简单写一个方法,将任意进制i的字符串s转成指定进制e的结果

// 将任意进制的字符串转成目标进制的字符串
    public static String toRadixEvery(String s,int i,int e){
        Integer tem=Integer.valueOf(s,i); // 将i进制的字符串转成10进制的整数
        return Integer.toString(tem,e); // 将10进制的tem转成e进制
        
//        return Integer.toString(Integer.valueOf(s,i),e);
    }

例子:

public static void main(String[] args) {
        System.out.println(toRadixEvery("19",16,8)); 
    } // 16进制的19转成8进制的值为31

 

posted @   Justin_Hu  阅读(667)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示