Нужно, чтобы метод toBinary(String) был реализован согласно условию.
Да, сделал криво, но прямое преобразование из 16 в 2 и обратно не осилил пока что
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
/*
Двоично-шестнадцатеричный конвертер
*/
public class Solution {
private static final String HEX = "0123456789abcdef";
private static final char dv1 = '0';
private static final char dv2 = '1';
public static void main(String[] args) {
String binaryNumber = "10011101000000010";
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "13a02";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber) {
String ch = "";
int des = 0;
if (binaryNumber == null || binaryNumber == "") {
return "";
}
else {
for (int i = 0; i < binaryNumber.length(); i++) {
if (dv1 == binaryNumber.charAt(i) || dv2 == binaryNumber.charAt(i)) {
//if (dv1.equals(binaryNumber.charAt(i)) || dv2.equals(binaryNumber.charAt(i))) {
}
else {
return "";
}
}
}
for (int i = 0; i < binaryNumber.length(); i++) {
des = des + (Character.getNumericValue(binaryNumber.charAt(binaryNumber.length() - 1 - i))) * (int)Math.pow(2, i);
}
int ost = 0;
StringBuilder hx = new StringBuilder();
while (des != 0) {
ost = des % 16;
hx = hx.append(HEX.charAt(ost));
des= des/16;//напишите тут ваш код
}
hx.reverse();
String hex = hx.toString();
return hex;//напишите тут ваш код
//return null;
}
public static String toBinary(String hexNumber) {
if (hexNumber == null || hexNumber == "") {
return "";
}
else {
for (int i = 0; i < hexNumber.length(); i++) {
if ((hexNumber.charAt(i) >= '0' && hexNumber.charAt(i) <= '9') || (hexNumber.charAt(i) >= 'a' && hexNumber.charAt(i) <= 'f')) {
}
else
return "";
}
}
int dec = 0;
for (int i = 0; i < hexNumber.length(); i++) {
dec = dec + HEX.indexOf(hexNumber.charAt(i)) * (int)Math.pow(16, hexNumber.length() - 1 - i);
}
String dv = "";
while (dec != 0) {
dv = (dec % 2) + dv;
dec = dec / 2;//напишите тут ваш код
}//напишите тут ваш код
return dv;
}
}