package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
public class Solution {
private static final String [] fourBitsBinaryArray = {"0000","0001","0010","0011","0100","0101","0110","0111",
"1000","1001","1010", "1011","1100","1101","1110","1111"};
private static final String [] hexSymbolArray = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
public static void main(String[] args)
{
String binaryNumber = "100111010000";
if (binaryNumber.length()%4==1)
binaryNumber = "000" + binaryNumber;
else if (binaryNumber.length()%4==2)
binaryNumber = "00" + binaryNumber;
else if (binaryNumber.length()%4==3)
binaryNumber = "0" + binaryNumber;
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber)
{
if (binaryNumber==null)
return "";
if((!Pattern.matches("[0-1]+", binaryNumber)))
return "";
String hexNumber = "";
String buffer = "";
for (int i = 0; i < binaryNumber.length(); i++)
{
buffer = binaryNumber.charAt(binaryNumber.length() - i- 1) + buffer;
if (buffer.length()==4)
for (int j = 0; j < 16; j++)
{
if(buffer.equals(fourBitsBinaryArray[j]))
{
hexNumber = hexSymbolArray[j] + hexNumber;
buffer = "";
break;
}
}
}
return hexNumber;
}
public static String toBinary(String hexNumber)
{
if (hexNumber==null)
return "";
if((!Pattern.matches("[0-f]+", hexNumber)))
return "";
String binary = "";
String buffer = "";
for (int i = 0; i < hexNumber.length(); i++)
{
buffer = hexNumber.charAt(hexNumber.length() - i- 1) + buffer;
for (int j = 0; j < 16; j++)
{
if(buffer.equals(hexSymbolArray[j]))
{
binary = fourBitsBinaryArray[j] + binary;
buffer = "";
break;
}
}
}
return binary;
}
}
package com.javarush.task.pro.task09.task0908;
import java.util.regex.Pattern;
public class Solution {
private static final String [] fourBitsBinaryArray = {"0000","0001","0010","0011","0100","0101","0110","0111",
"1000","1001","1010", "1011","1100","1101","1110","1111"};
private static final String [] hexSymbolArray = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
public static void main(String[] args)
{
String binaryNumber = "100111010000";
if (binaryNumber.length()%4==1)
binaryNumber = "000" + binaryNumber;
else if (binaryNumber.length()%4==2)
binaryNumber = "00" + binaryNumber;
else if (binaryNumber.length()%4==3)
binaryNumber = "0" + binaryNumber;
System.out.println("Двоичное число " + binaryNumber + " равно шестнадцатеричному числу " + toHex(binaryNumber));
String hexNumber = "9d0";
System.out.println("Шестнадцатеричное число " + hexNumber + " равно двоичному числу " + toBinary(hexNumber));
}
public static String toHex(String binaryNumber)
{
if (binaryNumber==null)
return "";
if((!Pattern.matches("[0-1]+", binaryNumber)))
return "";
String hexNumber = "";
String buffer = "";
for (int i = 0; i < binaryNumber.length(); i++)
{
buffer = binaryNumber.charAt(binaryNumber.length() - i- 1) + buffer;
if (buffer.length()==4)
for (int j = 0; j < 16; j++)
{
if(buffer.equals(fourBitsBinaryArray[j]))
{
hexNumber = hexSymbolArray[j] + hexNumber;
buffer = "";
break;
}
}
}
return hexNumber;
}
public static String toBinary(String hexNumber)
{
if (hexNumber==null)
return "";
if((!Pattern.matches("[0-f]+", hexNumber)))
return "";
String binary = "";
String buffer = "";
for (int i = 0; i < hexNumber.length(); i++)
{
buffer = hexNumber.charAt(hexNumber.length() - i- 1) + buffer;
for (int j = 0; j < 16; j++)
{
if(buffer.equals(hexSymbolArray[j]))
{
binary = fourBitsBinaryArray[j] + binary;
buffer = "";
break;
}
}
}
return binary;
}
}