java十进制转任意进制(2到36)
实现代码目录实现代码测试代码测试结果特别的二进制八进制十六进制public class MathHelper { private final String SYMBOL 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ; String toString( long integer,int radix){ if (integer 0 || radix 2 || radix 36) { throw new RuntimeException(请输入自然数指定进制输入[2,36]); } if (integer 0) { return integer; } String result ; while (integer ! 0) { int r (int)(integer % radix); char symbol SYMBOL.charAt(r); result symbol result; integer integer / radix; } return result; } }测试代码public class MathHelperTest { public static void main(String[] args) { MathHelper mh new MathHelper(); String binary mh.toString(11, 2); System.out.println(binary); } }测试结果1011此方法未考虑负数的问题可以参考一下我之前写的二进制转换之前按照计算机组成原理所写的原码-反码-补码写的不太好见谅十进制转二进制特别的十进制转二进制、八进制、十六进制可以使用包装类中的方法这种负数也可以二进制public class MathHelperTest { public static void main(String[] args) { System.out.println(Integer.toBinaryString(11)); System.out.println(Integer.toBinaryString(-11)); } }测试结果1011 11111111111111111111111111110101八进制public static void main(String[] args) { System.out.println(Integer.toOctalString(11)); System.out.println(Integer.toOctalString(-11)); }测试结果13 37777777765十六进制public static void main(String[] args) { System.out.println(Integer.toHexString(11)); System.out.println(Integer.toHexString(-11)); }测试结果b fffffff5