Я думаю, что это самый простой алгоритм (для тех, кто не хочет использовать встроенные функции):
public static String convertNumber(int a) {
StringBuilder sb=new StringBuilder();
sb.append(a & 1);
while ((a>>=1) != 0) {
sb.append(a & 1);
}
sb.append("b0");
return sb.reverse().toString();
}
Пример:
convertNumber (1) -> "0b1"
convertNumber (5) -> "0b101"
convertNumber (117) -> "0b1110101"
Как это работает: while-цикл перемещает число вправо (замена последнего бита вторым-последним и т. Д.), Получает значение последнего бита и помещает его в StringBuilder, повторяет до тех пор, пока не останется битов (вот когда a = 0).