1import java.util.Scanner; 2 3/** 4 * Created by longforus on 9:10 PM 5/9/2016 . 5 * IDEA-Test . 6 * 输入10进制 输出二进制字符串 先计算该数包含最大的2次方结果 每减去一个该数 该位二进制 7 * 就记1 不够减就记0 a减完以后补全0 8 */ 9public class Chapter4_37 { 10 public static void main (String[] args) { 11 System.out.println ("Enter a Integer :"); 12 Scanner in = new Scanner (System.in); 13 int a = in.nextInt (); 14 //System.out.println (Integer.toBinaryString (a));//在java中已有现成的方法实现 15 int i = 0; 16 while (Math.pow (2, i) <= a) {//检测最大到2的多少次方 需要<=a 而不是<a 否则a==2^i 会出错 17 i++; 18 } 19 i--;//减小i到2^i<=a 的范围内 20 String binaryString = ""; 21 while (i > =0) { 22 if (a - Math.pow (2, i) >= 0) {//每减去一个2^i 就记1 23 a -= Math.pow (2, i); 24 binaryString += 1; 25 } else//不够减就记0 26 binaryString += 0; 27 i--; 28 if (a == 0) {//a减完后补全剩余的i+1个0 (包含2^0 ) 然后跳出循环 再计算已经没有意义 29 for (int j = 0; j <= i; j++) { 30 binaryString += 0; 31 } 32 break; 33 } 34 } 35 System.out.println (binaryString); 36 } 37}
10进制转二进制字符串输出
Wesley13
2021-10-11
1156 0 0
点赞
收藏
评论区
加载中...