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取余,逆序排列"法

具體做法是:用2整除十進制整數,可以得到一個商和余數,再用2去除商,又會得到一個商和余數,如此進行,直到商為0時為止,然后把先得到的余數作為二

制數的低位有效位,后得到的余數作為二進制數的高位有效位,依次排列起來。

對於數值n,二進制最后一位=n%2;計算得到的結果是最后要輸出的結果,使用遞歸函數,聯系遞歸的特點:在遞歸語句之前計算n%2,在遞歸調用語句之后

輸出結果,這樣先計算的結果反而在最后輸出。

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

}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM