Вопрос-ответ

Print an integer in binary format in Java

Вывести целое число в двоичном формате в Java

У меня есть число, и я хочу напечатать его в двоичном формате. Я не хочу делать это путем написания алгоритма.

Есть ли какая-либо встроенная функция для этого в Java?

Переведено автоматически
Ответ 1

Предполагая, что вы имеете в виду "встроенный":

int x = 100;
System.out.println(Integer.toBinaryString(x));

Смотрите Целочисленную документацию.

(Long имеет аналогичный метод, BigInteger имеет метод экземпляра, где вы можете указать основание.)

Ответ 2

Здесь не нужно зависеть только от двоичного или любого другого формата ... доступна одна гибкая встроенная функция, которая печатает в вашей программе любой формат, который вы хотите.. Integer.toString(int, representation)

Integer.toString(100,8) // prints 144 --octal representation

Integer.toString(100,2) // prints 1100100 --binary representation

Integer.toString(100,16) //prints 64 --Hex representation
Ответ 3
System.out.println(Integer.toBinaryString(343));
Ответ 4

Мне нужно было что-то, чтобы красиво распечатать данные и разделять биты через каждые n бит. Другими словами, отобразить начальные нули и показать что-то вроде этого:

n = 5463
output = 0000 0000 0000 0000 0001 0101 0101 0111

Итак, вот что я написал:

/**
* Converts an integer to a 32-bit binary string
* @param number
* The number to convert
* @param groupSize
* The number of bits in a group
* @return
* The 32-bit long bit string
*/

public static String intToString(int number, int groupSize) {
StringBuilder result = new StringBuilder();

for(int i = 31; i >= 0 ; i--) {
int mask = 1 << i;
result.append((number & mask) != 0 ? "1" : "0");

if (i % groupSize == 0)
result.append(" ");
}
result.replace(result.length() - 1, result.length(), "");

return result.toString();
}

Вызовите его следующим образом:

public static void main(String[] args) {
System.out.println(intToString(5463, 4));
}
java