Java 實現 十進位制轉二進位制,十進位制轉十六進位制
阿新 • • 發佈:2018-11-26
/** * 十轉二 * @param a * @return String 型的二進位制 */ public static String ten_two(int a){ int length = 1; int b = a; while(true){ int x = b % 2; b = b / 2; if(b < 2){ length++; break; } length ++; } int[] arr = new int[length]; // 獲取陣列的動態長度 int item = -1; while(true){ int x = a % 2; if(a < 2){ x = a; item++; arr[item] = x; break; }else { item ++; arr[item] = x; } a = a / 2; } String str = ""; int time = item; for(int i = 0; i <= item; i++){ String st = String.valueOf(arr[time]); str = str + st; time --; } return str; } /** * 十轉十六 * @param a * @return 返回String 的十六進位制 */ public static String ten_sixteen(int a){ int length = 1; int b = a; while(true){ int x = b % 16; b = b / 16; if(b < 16){ length++; break; } length ++; } String[] arr = new String[length]; int item = -1; while(true){ int x = a % 16; if(a < 16){ x = a; item++; arr[item] = String.valueOf(x); break; }else { item ++; arr[item] = String.valueOf(x); } a = a / 16; } String str = ""; int time = item; for(int i = 0; i <= item; i++){ if(arr[time].equals("10")){ arr[time] = "a"; }else if(arr[time].equals("11")){ arr[time] = "b"; }else if(arr[time].equals("12")){ arr[time] = "c"; }else if(arr[time].equals("13")){ arr[time] = "d"; }else if(arr[time].equals("14")){ arr[time] = "e"; }else if(arr[time].equals("15")){ arr[time] = "f"; } str = str + arr[time]; time --; } return str; }
System.out.println(ten_two(12345));
System.out.println(ten_sixteen(987654));