一招搞定进制转换--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
本文来自博客园,作者:{Justin_Hu},转载请注明原文链接:{https://www.cnblogs.com/gchenghu/}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY