一、原理:除基倒取余法
以10進制轉2進制為例:輸入一個十進制數n,每次用n除以2,把余數記下來,再用商去除以2...依次循環,直到商為0結束,把余數倒着依次排列,就構成了轉換后的二進制數。
所有進制之間的轉換都是如此,2可以換成任何數字。十進制轉二進制、八進制、十六進制、64進制,全部如下。
二、具體的JAVA實現:
2.1 10進制數字轉n進制:
public class Main {
public static void main (String[] args) {
int n = 64;//需要轉換的數字
int m = 5; //轉換的進制(如果大於10,需考慮使用其他字符表示)
int t = 0; //用來記錄位數
int bin = 0; //用來記錄最后的二進制數
int r = 0; //用來存儲余數
while(n != 0){
r = n % m;
n = n / m; //注意:n為int,可以保證其肯定是一個整數,且是進制轉換需要的整數
bin += r * Math.pow(10,t); //pow函數:10的t次方
t++;
}
System.out.println(bin);
}
}
2.2 n進制數字轉10進制:
public class Main {
public static void main (String[] args) {
int n = 224;//需要轉換的數字
int m = 2; //進制
int des = 0; //儲存轉換后的結果
String s = new StringBuilder(String.valueOf(n)).reverse().toString(); //reverse使字符串倒序
for (int i = 0 ;i<s.length();i++){
int charIndex = s.charAt(i)-'0';
des += charIndex*Math.pow(m, i);
}
System.out.println(des);
}
}