KAID6IX Ответов: 1

Как сделать скрытые int в binarystring помочь


Метод, который мне нужно создать: public static String IntToBinary(int inputInt).

Этот метод должен принимать в качестве входных данных один int, преобразовывать этот int в двоичную версию самого себя (например, 3 становится “11”) и выводить это двоичное число в виде строки.

Я написал некоторый код, но он честно не делает того, что говорит вопрос, что мне нужно сделать.

Что я уже пробовал:

//Это единственный способ, которым я знаю, как преобразовать его, но он не делает того, что мне нужно, чтобы сделать в вопросе, так как я должен вставить одно целое число, преобразовать его в двоичный код, а затем заставить его вывести строку метод ниже этого не делает

статическая пустота usingArray() {

int binary[] = новый int[20];

int decimalNumber = 25;
int index = 0;

while (decimalNumber > 0) {

int остаток = десятичное число % 2;

binary[index++] = остаток;


decimalNumber = decimalNumber / 2;
}
//выполните цикл по массиву в обратном направлении и выведите двоичное число
for (int i = index - 1; i >= 0; i--) {
System.out.print(двоичный файл[i]);
}
}

Richard MacCutchan

Что он делает?

KAID6IX

Ну, для начала он не выводит двоичный файл в виде строки.
я также не уверен, что существует более быстрый способ ввода одного целого числа вместо использования массива.

1 Ответов

Рейтинг:
0

OriginalGriff

Есть несколько способов сделать это в Java:
1) Используйте фреймворк: Ява Лэнг.Целое число.метод toBinaryString () - GeeksforGeeks[^]
2) Сделайте это сами.
Первый тривиален и, вероятно, не разрешен для вашего домашнего задания!

Второе означает, что вы должны прочитать вопрос более внимательно.
Он специально просит вас создать метод, который принимает целочисленный параметр и возвращает строку: Yours этого не делает. Итак, начните с правильного определения сигнатуры метода:

public static String ToBinary(int x)
{
return ...
}
Это означает, что вместо массива целых чисел вам нужна строка для "сборки".

Я бы начал с двух циклов: один, чтобы найти наиболее значимый ненулевой бит, а затем один, чтобы преобразовать остальные. Таким образом, вам не нужно ничего "переворачивать", что упрощает задачу.

Подумайте об этом, а затем посмотрите, как далеко вы можете зайти!


KAID6IX

Да, я везде искал какой-то ответ или пример, и я действительно наткнулся на первую ссылку, которую вы прикрепили, но я не могу использовать ее.

Не могли бы вы объяснить, что вы имели в виду, используя цикл для поиска наиболее значимого нулевого бита, а именно ненулевого бита.

OriginalGriff

Целое число-это 32-битное число, а "самый значительный" бит-самый высокий.
Поскольку вы хотите показать только 5 битов для "25": 11001, есть 27 битов, которые вас не интересуют:
00000000000000000000000000011001
Поэтому напишите простой цикл, который работает от 31 до 0 включительно, и найдите самую высокую позицию бита, содержащую бит "1".
Если вы установите маску так, чтобы она содержала один бит в самой высокой позиции:
10000000000000000000000000000000
Вы можете использовать операторы сдвига Java, чтобы переместить его через биты, и использовать оператор teh и, чтобы проверить, равен ли он нулю или единице.

http://www.iitk.ac.in/esc101/05Aug/tutorial/java/nutsandbolts/bitwise.html

Найдите индекс самого высокого бита, вы выходите из цикла и используете его для запуска второго цикла.
Подумайте об этом минуту, и вы поймете, что я имею в виду.