好好學習,天天向下!
進制
- 二進制(數字前加
0b
,代表此數爲二進制數),滿二進一,由0和1兩個基本數字組成 - 八進制(數字前加
0
,代表此數爲八進制數),滿八進一,由0,1,2,3,4,5,6,7八個基本數字組成 - 十進制(數字前什麼都不加,則爲十進制數),滿十進一(日常生活中所使用的),由0,1,2,3, 4, 5, 6, 7, 8, 9十個基本數字組成
- 十六進制(數字前加
0x
,代表此數爲十六進制數),滿十六進一,由0,1,2,3, 4, 5, 6, 7, 8, 9和字母A到F(或a到f)組成
同一個數進制越大,所代表的值就越大
規則:
數字:123456
二進制===》十進制:1*
2^
5 + 2*
2^
4 + 3*
2^
3 + 4*
2^
2 + 5*
2^
1 + 6*
2^
0=……
規律:
將這個數字(123456)從右往左從零開始進行編號,這個數每一位數值乘以數字(123456)的進制(二進制,2)的編號次方之和,即爲轉換後的十進制結果。其他進制同理
代碼實現:
public class sys {
public static void main(String[] args) {
sysHeavyLoad SYS = new sysHeavyLoad();
System.out.println(SYS.$SYS(100, "0B"));
}
}
public class sysHeavyLoad {
public static int $SYS(String number, String type) {
int sum = 0;
char[] array = number.toCharArray();
sum = summation(array, type);
return sum;
}
public static int $SYS(int number, String type) {
int sum = 0;
char[] array = String.valueOf(number).toCharArray();
sum = summation(array, type);
return sum;
}
/**
* 返回次方值
*/
public static int power(int a, int b) {
int power = 1;
for (int c = 0; c < b; c++)
power *= a;
return power;
}
/**
*判斷類型並將轉換結果返回
*/
public static int summation(char[] array, String type) {
int m = 0;
int sum = 0;
//二進制
if ("0b".equals(type) || "0B".equals(type)) {
m = 2;
}
//八進制
if ("0".equals(type)) {
m = 8;
}
//十六進制
if ("0x".equals(type) || "0X".equals(type)) {
m = 16;
}
for (int i = 0; i < array.length; i++) {
sum = sum + (array[i] - '0') * power(m, array.length - i - 1);
}
return sum;
}
}