/* 十六進制的轉換 要求: 1.從鍵盤輸入數據(有輸入提示) 2.用自定義方法 增加: 對輸入的數,進行8進制和2進制的轉換。 */ import java.util.Scanner; public class ArrayTest{ public static void main(String[] args){ System.out.print("請輸入要轉換爲16進制的數字:"); Scanner scan=new Scanner(System.in); int num = scan.nextInt(); System.out.print("轉換後的16進制數爲:"); getHex(num); System.out.println(); System.out.print(" 轉換後的2進制數爲:"); getBinary(num); System.out.println(); System.out.print(" 轉換後的8進制數爲:"); getOctal(num); } //getHex方法。 完成16進制的轉換功能。 //start getHex; public static void getHex(int num){ char[] chs={'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F'}; char[] arr = new char[8]; int p = arr.length; //int類型在內存中是4字節,32個2進制位,對應的十六進制位是8. 每4位對應一位16進制數。 if(num == 0 ){ System.out.print("0"); return ; //此處的return ;當接收的數據爲0的時候,結束此方法。 } while(num != 0 ){ int x = num & 15; arr[--p] = chs[x]; //在存數的過程中,從最高位開始存。 也就是最先運算出來的數字,存到數組的最後一位。 num = num >>> 4; //將num向右移4個2進制位。 >>>代碼無符號右移。>>代表有符號有移。 } for(int i=p;i<arr.length;i++){ //輸出過程是從有效位開始輸出。帶有0不輸出 System.out.print(arr[i]); } } //end getHex //start getOctal public static void getOctal(int num){ char[] chs={'0','1','2','3','4','5','6','7'}; char[] arr=new char[11]; int p=arr.length; if(num == 0){ System.out.print("0"); return ; } while(num != 0){ int n=num & 7; arr[--p] = chs[n]; num = num >>> 3; } for(int i=p;i<arr.length;i++){ System.out.print(arr[i]); } } //end getOctal //start getBinary public static void getBinary(int num){ char[] chs={'0','1'}; char[] arr=new char[32]; int p=arr.length; if(num == 0){ System.out.print("0"); return ; } while(num !=0){ int n=num & 1; arr[--p]=chs[n]; num = num >>>1; } for(int i=p;i<arr.length;i++){ System.out.print(arr[i]); } } //end getBinary }
使用JAVA完成十進制到二進制八進制十六進制的轉換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.