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;
}
}