Есть несколько способов получить бинарное значение с int
вот один из коробки
Integer.toBinaryString(value);
Но этот метод возвращает значение в котором от 7 до 9 знаков, не пойму от чего это зависит
Я вот нашел подход как получить из int бинарное значение которое всегда возвращает 8 знаков
private static void printByte(int value) {
String currentBinary = Integer.toBinaryString(256 + value);
System.out.println(currentBinary.substring(currentBinary.length() - 8));
}
И в итоге все равно потом substing
подрезает строку до нужной длины...
В общем все как то не ясно) Хочу понять как это работает, а не просто запомнить как факт.
Но этот метод возвращает значение в котором от 7 до 9 знаков, не пойму от чего это зависит
Метод Integer.toBinaryString(...)
возвращает строковое представление переданного числа в двоичной форме без лидирующих нулей.
Например:
System.out.println(Integer.toBinaryString(1));
// вывод: 1
System.out.println(Integer.toBinaryString(2));
// вывод: 10
System.out.println(Integer.toBinaryString(16));
// вывод: 10000
По второму вопросу:
256
в десятичной системе счисления – это 1_0000_0000
в двоичной. Если к этому числу прибавить меньшее (по абсолютной величине) число, то ведущая единица останется на месте, следовательно, идущие после нее нули в строке гарантированно будут. Ну а потом строка обрезается до нужной длины.
Вообще говоря, приведенный метод работает некорректно, например:
System.out.println(Integer.toBinaryString(12345));
// вывод 11000000111001
printByte(12345);
// вывод 00111001
Добавить лидирующие нули, можно, например, так:
String s = String.format("%32s", Integer.toBinaryString(1)).replace(' ', '0');
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть примерно такая структура сайта, поведение блоков примерно соответствует нужному результату, кроме последнего
codepenio скопировал исходники этого слайдшоу и не работает помогите разобраться