JavaRush
AI Academy
new
Акція
Університет
Java FullStack
Python FullStack
AI Native Developer
new
Навчання
Курси
Задачі
Опитування
Ігри
Допомога
Графік стусанів
Стажування
Спільнота
Користувачі
Форум
Чат
Статті
Історії успіху
Дії
Відгуки
Передплати
Світла тема
Запитання
  • Відгуки
  • Про нас
  • CS50
Почати
Почати навчання
Почати навчання
  • Усі запитання
JavaRush/Допомога із Java задачами/Ручные проверки показывают что все работает, валидатор же...
Цимбал
15 рівень
  • 3/13/22
  • 516переглядів
  • 3коментарів

Ручные проверки показывают что все работает, валидатор же первые два требования не засчитывает и менторских подсказок не дает.

Запитання щодо задачі Двійковий конвертер
Java Syntax,  10 рівень,  2 лекція
Відповідь знайдено

Публічний статичний метод toBinary(int) має перетворювати ціле число, отримане як вхідний параметр, з десяткової системи числення у двійкову й повертати рядкове подання цього числа. А публічний статичний метод toDecimal(String) навпаки — має перетворювати рядкове подання двійкового числа на десяткове число.
Методи діють лише для додатних чисел і непорожніх рядків. Якщо вхідний параметр дорівнює або менший за 0, метод toBinary(int) повертає порожній рядок. Якщо вхідний параметр — порожній рядок або null, метод toDecimal(String) повертає 0.
Твоє завдання — реалізувати ці методи.

Один із алгоритмів перетворення десяткового числа на рядкове подання двійкового числа такий:
while(десяткове число не дорівнює 0) {
двійкове подання = остача від ділення десяткового числа на 2 + двійкове подання
десяткове число = десяткове число / 2
}

Один із алгоритмів перетворення рядкового подання двійкового числа на десяткове число такий:
for (int i = 0; i < довжина двійкового подання; i++) {
десяткове число = десяткове число + число з двійкового подання * на 2 в степені i
}

Спочатку беремо крайнє праве число з двійкового подання. На кожній ітерації циклу беремо наступне число ближче до початку двійкового подання.

Підказка: для піднесення числа до степеня можна скористатися методом Math.pow(число, степінь).
Метод main() у тестуванні не використовується.

Вимоги:
  • Потрібно реалізувати метод toBinary(int) згідно з умовою.
  • Потрібно реалізувати метод toDecimal(String) згідно з умовою.
  • Методи Integer.toBinaryString(int) і Long.toBinaryString(int) використовувати не можна.
  • Методи Integer.parseInt(String, int) і Long.parseLong(String, int) використовувати не можна.
  • Методи Integer.toString(int, int) і Long.toString(long, int) використовувати не можна.
  • Об'єкт типу BigInteger використовувати не можна.
  • Об'єкт типу BigDecimal використовувати не можна.
.....
package ua.javarush.task.pro.task09.task0906; import java.nio.charset.StandardCharsets; import java.util.regex.Pattern; /* Двійковий конвертер */ public class Solution { public static void main(String[] args) { int decimalNumber = Integer.MAX_VALUE; System.out.println("Десяткове число " + decimalNumber + " дорівнює двійковому числу " + toBinary(decimalNumber)); String binaryNumber = "0010101010101010"; System.out.println("Двійкове число " + binaryNumber + " дорівнює десятковому числу " + toDecimal(binaryNumber)); System.out.println(decimalNumber==toDecimal(binaryNumber)); System.out.println(binaryNumber.equals(toBinary(decimalNumber))); } public static String toBinary(int decimalNumber) { if (decimalNumber <= 0) { return ""; } String binaryNumber = ""; while (decimalNumber != 0) { binaryNumber += Integer.toString(decimalNumber % 2); decimalNumber /= 2; } return binaryNumber; } public static int toDecimal(String binaryNumber) { if (binaryNumber == null || binaryNumber.equals("")) { return 0; } int decimalNumber = 0; char[] buffer = binaryNumber.toCharArray(); int flag = buffer.length; for (int i = 0; i < binaryNumber.length(); i++) { decimalNumber += buffer[binaryNumber.length()-i-1] * Math.pow(2, i); } return decimalNumber; } }
0
Коментарі (3)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Игорь Чайка
Рівень 32
20 квітня 2022, 09:50
Може хтось використає. швидке перетворення чара в число: int a; char b; a = b - '0'; мені допомогло
0
KIRA Разработчик в prosv.ruExpert
13 березня 2022, 21:46
int decimalNumber = 4; System.out.println("Десяткове число " + decimalNumber + " дорівнює двійковому числу " + toBinary(decimalNumber)); Ожидаем получить: "100" String binaryNumber = "100"; System.out.println("Двійкове число " + binaryNumber + " дорівнює десятковому числу " + toDecimal(binaryNumber)); Ожидаем: 4
0
Цимбал
Рівень 15
13 березня 2022, 21:59
Спасибо, теперь вижу
0
Навчання
  • Курси програмування
  • Реєстрація
  • Курс Java
  • Допомога із задачами
  • Ціни
Спільнота
  • Користувачі
  • Статті
  • Форум
  • Чат
  • Історії успіху
  • Дії
Компанія
  • Про нас
  • Контакти
  • Відгуки
  • FAQ
  • Підтримка
JavaRush JavaRush — це інтерактивний онлайн-курс вивчення Java-програмування з нуля. Він містить 1200 практичних задач із перевіркою розв'язання одним клацанням, необхідний мінімум знань із теоретичних основ Java, а ще мотивувальні «фішки», які допоможуть пройти курс до кінця: ігри, опитування, цікаві проєкти й статті про ефективне навчання та кар'єру Java‑девелопера.
Підписуйтесь
Мова інтерфейсу
Русский English
Українська
Програмістами не народжуються © 2026 JavaRush
MastercardVisa
Програмістами не народжуються © 2026 JavaRush