Rev 210 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
import java.io.*;
import java.util.*;
public class P2_EncDec
{
/*
private final byte[][] encodingTable = {
{ 0x0, 0x1E },
{ 0x1, 0x09 },
{ 0x2, 0x14 },
{ 0x3, 0x15 },
{ 0x4, 0x0A },
{ 0x5, 0x0B },
{ 0x6, 0x0E },
{ 0x7, 0x0F },
{ 0x8, 0x12 },
{ 0x9, 0x13 },
{ 0xA, 0x16 },
{ 0xB, 0x17 },
{ 0xC, 0x1A },
{ 0xD, 0x1B },
{ 0xE, 0x1C },
{ 0xF, 0x1D }};
*/
public static final String[][] encodingTable = {
{ "0000", "11110" },
{ "0001", "01001" },
{ "0010", "10100" },
{ "0011", "10101" },
{ "0100", "01010" },
{ "0101", "01011" },
{ "0110", "01110" },
{ "0111", "01111" },
{ "1000", "10010" },
{ "1001", "10011" },
{ "1010", "10110" },
{ "1011", "10111" },
{ "1100", "11010" },
{ "1101", "11011" },
{ "1110", "11100" },
{ "1111", "11101" }};
public static String convert4B (String _4BNum)
{
int i = encodingTable.length - 1;
for (; i >= 0; i--)
if (encodingTable[i][0].equals(_4BNum))
return encodingTable[i][1];
throw new IllegalArgumentException();
}
public static String convert5B (String _5BNum)
{
int i = encodingTable.length - 1;
for (; i>=0; i--)
if (encodingTable[i][1].equals(_5BNum))
return encodingTable[i][0];
throw new IllegalArgumentException();
}
public static void main (String[] args) throws Exception
{
String conv4 = "1000";
String conv5 = "11100";
System.out.printf ("Converting %s -> %s\n", conv4, convert4B (conv4));
System.out.printf ("Converting %s -> %s\n", conv5, convert5B (conv5));
}
}