Как преобразовать массив битов в текстовый вид так, чтобы это выглядело как набор из 0 и 1?
Если попытаться использовать метод bytes.ToString()
то получается вот это: [B@a0e2ce5
, а мне нужно условно 101100110101
Есть ли готовый стандартный метод такого преобразования?
Вариант на stream api
:
Byte[] bytes = {1,0,1,1,0,0,1,1,0,1,0,1};
Arrays.stream(bytes).forEach((b) -> System.out.print(b));
// 101100110101
если нужен именно массив byte[]
:
byte[] bytes = {1,0,1,1,0,0,1,1,0,1,0,1};
for (int b : bytes) System.out.print(b);
// 101100110101
если нужно красиво оформить:
byte[] bytes = {1,0,1,1,0,0,1,1,0,1,0,1};
System.out.println(Arrays.toString(bytes));
// [1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1]
Есть рядом с упомянутым методом и Integer.toBinaryString
Только обратите внимание, что лидирующие нули обрезаются, так что при необходимости дополняйте нулями вручную
Кроме того, toString
принимает аргумент radix
Если твой массив состоит из нулей и единиц, то так:
System.out.print(Arrays.toString(твой_массив));
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
выводит все время ноль - в чем причина