java中十进制数转换二进制数

将十进制转换成二进制的算法以下:

1.给定一个数;
2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。因此咱们要作的就是用你给定的这个数除以2,若是结果为奇数则r=1,不然r=0;如此循环下去,直到这个数〉=1。
3.而后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就能够了。
import java.util.Scanner;

public class ZhuanHuan {
	public static void main(String[] args){
		
		System.out.println("请输入一个十进制数:");
		Scanner reader = new Scanner(System.in); 
	     int n=0;
	     int i=0;
	     int r=0;
	     n=reader.nextInt();
	     int[] a =new int[10];
	     do{	    	 
	    	 if(n%2==1){
	    		 r=1;
	    	 }
	    	 else {
				r=0;
			}
			a[i]=r;
	    	 n=n/2;
	    	 i++;
	     }
	     while(n>0);
	    	System.out.println("转化成的二进制是:"); 
	    	for (int j = i-1; j>=0; j--) {
				System.out.print(a[j]);
			}
	     
	}	
}

  


十进制整数转换为二进制整数采用"除2取余,逆序排列"法java

具体作法是:用2整除十进制整数,能够获得一个商和余数,再用2去除商,又会获得一个商和余数,如此进行,直到商为0时为止,而后把先获得的余数做为二算法

制数的低位有效位,后获得的余数做为二进制数的高位有效位,依次排列起来。数组

对于数值n,二进制最后一位=n%2;计算获得的结果是最后要输出的结果,使用递归函数,联系递归的特色:在递归语句以前计算n%2,在递归调用语句以后函数

输出结果,这样先计算的结果反而在最后输出。spa

import java.util.Scanner;

public class ChangeTo2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("请输入一个整型的十进制数:");
         Scanner reader = new Scanner(System.in);
         int num = 0;
         num = reader.nextInt();
         System.out.print("转换后的二进制数为:");
         toBinary(num);
	     
	}
	 //递归函数
	static void toBinary( int num){
		int r;
		r = num%2;//最后一位要输出的,即便参数=1,仍是要计算到这里结束,只取出余数就ok了。而后顺次返回上一级主调函数,继续执行剩下的……
		          //若是商 1 / 2 = 0,计算就能够终止了,不须要再算
		if(num>=2){
			
			 //精华,联系10进制转2进制的算法,每次除以2,取出余数,而后用新的商继续除以2,取出新余数……直到商为0,余数逆序输出便可
			
			toBinary(num/2);//把新的商做为参数递归调用
		}
		//在递归语句以后输出,这样就是倒叙输出
        System.out.print(r);
		
	}

}
相关文章
相关标签/搜索