虽然后来才发现有个函数可以直接把十进制转成二进制的。
可是,咱当时学的时候没有学到这个啊。所以,这里有两个方法,一个是那个函数的方法,一个是我自己写的。
自己看吧。其实就是一个思路的问题,思路有了就一切ok了。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import java.util.*; public class HomeWork3_4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入10进制数:"); int x = sc.nextInt(); String a = Integer.toBinaryString(x); int m = 0,n=0,i=0,j,b=1; int arr[] = new int[32]; while(true){ m = x%2+m*10; n++; x = x/2; if(x==0){ break;} } for(i=n;i>0;i--){ for(j=1;j;j++) { b*=10;} arr[i]=m/b; m=m-arr[i]*b; b=1; } for(i=1;i<=n;i++) System.out.print(arr[i]); System.out.println(); System.out.println(a); } } |
这个思路,让我想起高中数学……
二进制加密用来记录银行卡密码挺不错~