public class BinaryConverter { public static void main(String[] args) { for(int i = -5; i < 33; i++) { System.out.println(i + ": " + toBinary(i)); System.out.println(i); //always another way System.out.println(i + ": " + Integer.toBinaryString(i)); } } /* * pre: none * post: returns a String with base10Num in base 2 */ public static String toBinary(int base10Num) { boolean isNeg = base10Num < 0; base10Num = Math.abs(base10Num); String result = ""; while(base10Num > 1) { result = (base10Num % 2) + result; base10Num /= 2; } assert base10Num == 0 || base10Num == 1 : "value is not <= 1: " + base10Num; result = base10Num + result; assert all0sAnd1s(result); if( isNeg ) result = "-" + result; return result; } /* * pre: cal != null * post: return true if val consists only of characters 1 and 0, false otherwise */ public static boolean all0sAnd1s(String val) { assert val != null : "Failed precondition all0sAnd1s. parameter cannot be null"; boolean all = true; int i = 0; char c; while(all && i < val.length()) { c = val.charAt(i); all = c == '0' || c == '1'; i++; } return all; } }