Создание нового 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 бит в вашей двоичной строке).