К сожалению, ваш метод может решить только каждый второй байт правильно, не знаю почему: DI проверил это с этим байтовым массивом с начала = 12 и конца = 48.
byte [] s = {(byte) 0b01000000, (байт) 0b00000000, (байт) 0b00010011, (байт) 0b00010000, (байт) 0b11101100, (байт) 0b00010001, (байт) 0b11101100, (байт) 0b00010001, (байт) 0b111010000 (байт) 000111010000 (байт) 00011010000 (байт) 00011010000 (байт) 00011010000 (байт)*
Результат был таким:
00000001 00110001 11111110 <- это не работает 11000001 00001110 </p>
Я нашел другое решение с BigInteger, используя rightShift и leftShift, пока эти биты не окажутся в правильномпозиция, чтобы прочитать это непосредственно от байтового массива.Спасибо за вашу помощь!