I want to print out the contents of a string in binary. For example:
String s = "0123" ;
I want my System.out.println to print:
0000 0001 0010 0011
Any ideas?
// Would this do?
import java.io.PrintWriter;
public class ToBinary {
private static PrintWriter out =
new PrintWriter(System.out, true);
private static PrintWriter err =
new PrintWriter(System.err, true);
public static String toBinary(String s)
throws BadDigitException {
String result = "";
for (int i = 0; i < s.length(); ++i) {
switch (s.charAt(i)) {
case '0': result += "0000 "; break;
case '1': result += "0001 "; break;
case '2': result += "0010 "; break;
case '3': result += "0011 "; break;
case '4': result += "0100 "; break;
case '5': result += "0101 "; break;
case '6': result += "0110 "; break;
case '7': result += "0111 "; break;
case '8': result += "1000 "; break;
case '9': result += "1001 "; break;
case 'a':
case 'A': result += "1010 "; break;
case 'b':
case 'B': result += "1011 "; break;
case 'c':
case 'C': result += "1100 "; break;
case 'd':
case 'D': result += "1101 "; break;
case 'e':
case 'E': result += "1110 "; break;
case 'f':
case 'F': result += "1111 "; break;
default: throw new
BadDigitException(s.charAt(i));
}
}
return result;
}
public static void main(String[] args) {
try {
out.println(toBinary("0123"));
} catch(BadDigitException x) {
err.println(x);
}
}
}
class BadDigitException extends Exception {
BadDigitException(char c) {
super("Bad digit: " + c);
}
}