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
*/