class Dec2XXX { public static void main(String[] args) { toBin(6); toHex(6); toOct(6); } /*10to2*/ public static void toBin(int num) { trans(num, 1, 1); } /*10to16*/ public static void toHex(int num) { trans(num, 15, 4); } /*10to8*/ public static void toOct(int num) { trans(num, 7, 3); } //抽取相同功能 public static void trans(int num, int base, int offset) { //查表法 char[] chs = new char[]{'0','1','2','3', '4','5','6','7', '8','9','A','B', 'C','D','E','F'}; //用于存储转换结果 int类型 最大32位 char[] arr = new char[32]; int pos = arr.length; //只进行有效位的转换 while(num != 0) { //位运算 int temp = num & base; arr[--pos] = chs[temp]; num = num >>> offset;//无符号右移 } //"int pos = arr.length;"以及"arr[--pos]"的目的是使下面的for循环的i = pos for(int i = pos; i < arr.length; i++) { System.out.print(arr[i]); } } }
#学习笔记,如有谬误,敬请指正。#
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步