How to convert a number to any base in Java

1 Answer

0 votes
public class BaseConvert {

    public static String toBase(int n, int base) {
        final String digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        if (base < 2 || base > 36) {
            throw new IllegalArgumentException("Base must be between 2 and 36");
        }

        if (n == 0) {
            return "0";
        }

        StringBuilder sb = new StringBuilder();

        while (n > 0) {
            int remainder = n % base;
            sb.append(digits.charAt(remainder));
            n /= base;
        }

        return sb.reverse().toString();
    }

    public static void main(String[] args) {
        int number = 255;

        System.out.println(number + " in base 2  = " + toBase(number, 2));
        System.out.println(number + " in base 8  = " + toBase(number, 8));
        System.out.println(number + " in base 16 = " + toBase(number, 16));
        System.out.println(number + " in base 36 = " + toBase(number, 36));
    }
}



/*
run:

255 in base 2  = 11111111
255 in base 8  = 377
255 in base 16 = FF
255 in base 36 = 73

*/

 



answered Feb 21 by avibootz
...