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;
}
}
Цимбал
15 рівень
Ручные проверки показывают что все работает, валидатор же первые два требования не засчитывает и менторских подсказок не дает.
Відповідь знайдено
Коментарі (3)
- популярні
- нові
- старі
Щоб залишити коментар,
потрібно ввійти в систему
Игорь Чайка
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
Цимбал
13 березня 2022, 21:59
Спасибо, теперь вижу
0