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

}
相關文章
相關標籤/搜索