Skip to content

Instantly share code, notes, and snippets.

@michaelpass
Created July 30, 2019 18:59
Show Gist options
  • Save michaelpass/f7cf992e01e65f5729e7fa7aba7b3da9 to your computer and use it in GitHub Desktop.
Save michaelpass/f7cf992e01e65f5729e7fa7aba7b3da9 to your computer and use it in GitHub Desktop.
Convert Binary Output File to Hex Equivalent
import java.io.*;
private static void convertFileOutputToHex(String fileName) throws IOException {
ArrayList<String> programLines = new ArrayList<>();
try {
FileReader fr = new FileReader(fileName);
BufferedReader br = new BufferedReader(fr);
while (br.ready()) {
programLines.add(br.readLine());
}
} catch (IOException e) {
System.out.println("Error - Cannot find binary string input file.");
}
FileWriter fw = new FileWriter("prog.hex");
for (String line : programLines) {
// Pad with leading 0's until
while((line.length() % 4) != 0){
line = "0" + line;
}
// Convert binary digits to hex 4 at a time.
String hexStringToPrint = "";
for(int n = 0; n < line.length(); n = n + 4){
// Construct quadlet
String quadlet = String.valueOf(line.charAt(n + 0)) + String.valueOf(line.charAt(n + 1))
+ String.valueOf(line.charAt(n + 2)) + String.valueOf(line.charAt(n + 3));
hexStringToPrint = hexStringToPrint + convertBinaryToHex(quadlet);
}
fw.write(hexStringToPrint);
fw.write("\n");
}
fw.close();
}
private static String convertBinaryToHex(String binaryQuad){
Map<String, String> hexLookUpTable = new HashMap<>();
hexLookUpTable.put("0000", "0");
hexLookUpTable.put("0001", "1");
hexLookUpTable.put("0010", "2");
hexLookUpTable.put("0011", "3");
hexLookUpTable.put("0100", "4");
hexLookUpTable.put("0101", "5");
hexLookUpTable.put("0110", "6");
hexLookUpTable.put("0111", "7");
hexLookUpTable.put("1000", "8");
hexLookUpTable.put("1001", "9");
hexLookUpTable.put("1010", "A");
hexLookUpTable.put("1011", "B");
hexLookUpTable.put("1100", "C");
hexLookUpTable.put("1101", "D");
hexLookUpTable.put("1110", "E");
hexLookUpTable.put("1111", "F");
return hexLookUpTable.get(binaryQuad);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment