public class Binary { public static void main(String[] args) { // Print binary representation of N. int N = Integer.parseInt(args[0]); int v = 1; while(v <= N/2) v = 2*v; // Now v is the largest power of 2 <= N. int n = N; // current excess while (v > 0) { //Cast out the power of 2 in decreasing order. if (n < v) { System.out.print(0); } else { System.out.print(1); n-=v;} v = v/2; } System.out.println(); } }
打印10进制数字(decimal number)的二进制表示。将数字拆成2的幂次的和的形式。例如 19 = 16 + 2 + 1. 所以 19 的二进制表示为 10011.