《寫給大忙人看的Java核心技術》第一章練習

1.寫個程序,它讀取一個整數,並以二級制、八進制、十六進制輸出。以十六進制浮點數輸出倒數。

十進制轉二進制和轉八進制類似,所以就給出轉二進制方法。在Java中十進制轉二進制有三種方法。

第一種 除基倒取餘法

這是最符合我們平時的數學邏輯思維的,即輸入一個十進制數n,每次用n除以2,把餘數記下來,再用商去除以2...依次循環,直到商爲0結束,把餘數倒着依次排列,就構成了轉換後的二進制數。

public void binaryToDecimal(int n){
     String str = "";
     while(n!=0){
         str = n%2+str;
         n = n/2;
     }
         System.out.println(str);
}

第二種:利用“移位”操作實現

public void binaryToDecimal(int n){
      for(int i = 31;i >= 0; i--)
          System.out.print(n >>> i & 1);
}


第三種:調用API函數

public void function1(int n){
     String result = Integer.toBinaryString(n);
     System.out.println(result);
 }

Java中十進制轉16進制其實和十進制轉二進制差不多,只是因爲十六進制包含字母所以略微有些差異。

public static void binaryToDecimal(int n){
		String str = "";
		while(0!=n){
			if(n%16<10){
				str = n%16+str;
			}else{
				switch (n%16) {
				case 10:
					str = "A"+str;
					break;
				case 11:
					str = "B"+str;
					break;
				case 12:
					str = "C"+str;
					break;
				case 13:
					str = "D"+str;
					break;
				case 14:
					str = "E"+str;
					break;
				case 15:
					str = "F"+str;
					break;
				}
			}
			n = n/16;
		}
		System.out.println(str);
	}

 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章