Создание нового int/char, зная биты

Я пытаюсь сделать новый символ / целое число. Все, что я знаю об этом char/int, это только первые 6 бит. У меня есть переменная с именем

number

Это довольно большое число, и оно состоит из 24 бит. С этим номером я хочу использовать метод toBinaryString

bits = Integer.toBinaryString(number);

Так что теперь у меня есть переменные биты, содержащие биты из моего номера переменной. В этот момент я хочу разделить эту строку на 4, чтобы у меня остались строки длиной 4, 6 символов, которые будут представлять мои биты для моего целого числа / символа. Как мне создать номер или персонажа, зная эти биты?

Просто чтобы убедиться, что я объясняю это в каждой детали, приведу пример:

я имею

number = "abc" // 011000010110001001100011 as binary representation

Теперь я хочу создать новое целое число с первыми 6 битами (011000). Еще одно целое число со следующими 6 битами (010110) и так далее...

1 ответ

Решение

Почему ты хочешь это как строку? Похоже, вы действительно хотите просто операции сдвига битов:

number = ...;

int bottomBits = number & 0x3f;
int middleBits = (number >>> 6) & 0x3f;
int upperBits = (number >>> 12) & 0x3f;

Так bottomBits младшие 6 бит, то middleBits, затем upperBits (самые значимые биты, поэтому первые 6 бит в вашей двоичной строке).

Другие вопросы по тегам