Добрий вечір. Зробив перетворення з 2-ічного кода в десятичний,а потім в 16-тичний.Результат правильний,умова виконується,а валідатор не пропускає.
package ua.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двійково-шістнадцятковий конвертер
*/
public class Solution {
public static void main(String[] args) {
String binaryNumber = "100111010000";
System.out.println("Двійкове число " + binaryNumber + " дорівнює шістнадцятковому числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шістнадцяткове число " + hexNumber + " дорівнює двійковому числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
//напишіть тут ваш код
String HEX = "0123456789abcdef";
int zapret=0;
for (int b = 0; b < binaryNumber.length(); b++) {
if (binaryNumber.charAt(b) != '1' && binaryNumber.charAt(b) != '0') {
zapret++;
}}
if (binaryNumber == "" || binaryNumber == null || zapret > 0) {
return " ";
} else {
int desyat = 0;
int yacheyka = 2;
int b = 0;
for (int i = binaryNumber.length() - 1; i >= 0; i--) {
if (binaryNumber.charAt(i) == '1') {
desyat = (int) (desyat + Math.pow(2, b));
}
b++;
yacheyka = yacheyka * 2;
}
String rez = "";
while (desyat != 0) {
int ost = desyat % 16;
rez = HEX.charAt(ost) + rez;
desyat = desyat / 16;
}
return rez;
}
}
public static String toBinary(String hexNumber) {
//напишіть тут ваш код
return null;
}
}