/*
00開始為二進(jìn)制、0x或0X開始的為十六進(jìn)制、0開始為八進(jìn)制、正常的為十進(jìn)制其中0為數(shù)字零
*/
public class To {
/**
* 將給定的一個進(jìn)制數(shù) 轉(zhuǎn)換成其它三種進(jìn)制數(shù)
* 如:給定一個十進(jìn)制數(shù) 轉(zhuǎn)換成二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)
* 而:給定一個二進(jìn)制數(shù) 轉(zhuǎn)換成八進(jìn)制數(shù)、十進(jìn)制數(shù)和十六進(jìn)制數(shù)
*/
private static String error = null;
private static char[] a = { '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
/**
* 給定一個數(shù) 將其轉(zhuǎn)換
*/
public static void main(String[] args) {
String number = "016";
int to10 = to10(number);
System.out.println(number + "二進(jìn)制: " + toNumber(to10, 2));
System.out.println(number + "八進(jìn)制: " + toNumber(to10, 8));
System.out.println(number + "十進(jìn)制: " + toNumber(to10, 10));
System.out.println(number + "十六進(jìn)制: " + toNumber(to10, 16));
}
public static String toNumber(int number, int n) {
String str = "";
for (int i = 0; i < n; i++) {
if (number == i) {
str = a[i] + str;
return str;
}
}
str = a[number % n] + str;
str = toNumber(number / n, n) + str;
return str;
}
/**
* 將給定的數(shù) 轉(zhuǎn)換成十進(jìn)制數(shù)
*/
public static int to10(String str) {
int number = 0;
int status = 10;
if (str.charAt(0) == '0') {
if (str.charAt(1) == 'x' || str.charAt(1) == 'X') {
status = 16;
str = str.substring(2);
} else if (str.charAt(1) == '0') {
status = 2;
str = str.substring(2);
} else {
status = 8;
str = str.substring(1);
}
}
number = stringToInt(str, status);
return number;
}
public static int stringToInt(String str, int status) {
int number = 0;
int k = 0;
int s = 1;
int leng = str.length() - 1;
for (int i = str.length() - 1; i >= 0; i--) {
if (error != null) {
break;
}
if(k > 0) {
s *= status;
}
System.out.println(s);
switch (str.charAt(i)) {
case '0':
number = number + 0 * s;
k++;
break;
case '1':
number = number + 1 * s;
k++;
break;
case '2':
if (2 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 2 * s;
k++;
break;
case '3':
if (3 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 3 * s;
k++;
break;
case '4':
if(4 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 4 * s;
k++;
break;
case '5':
if(5 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 5 * s;
k++;
break;
case '6':
if(6 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 6 * s;
k++;
break;
case '7':
if(7 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 7 * s;
k++;
break;
case '8':
if(8 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 8 * s;
k++;
break;
case '9':
if(9 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 9 * s;
k++;
break;
case 'A':
if(10 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 10 * s;
k++;
break;
case 'B':
if(11 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 11 * s;
k++;
break;
case 'C':
if(12 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 12 * s;
k++;
break;
case 'D':
if(13 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 13 * s;
k++;
break;
case 'E':
if(14 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 14 * s;
k++;
break;
case 'F':
if(15 >= status) {
error = "數(shù)據(jù)出錯!";
break;
}
number = number + 15 * s;
k++;
break;
default:
error = "數(shù)據(jù)出錯!";
break;
}
}
if(error != null) {
System.out.println(error);
}
return number;
}
}
016如何轉(zhuǎn)換成二進(jìn)制數(shù)
016如何轉(zhuǎn)換成二進(jìn)制數(shù)
其他人氣:803 ℃時間:2020-02-05 17:01:18
優(yōu)質(zhì)解答
我來回答
類似推薦
- 正常的數(shù)字怎么轉(zhuǎn)換成二進(jìn)制數(shù)和十進(jìn)制的數(shù),二進(jìn)制和十進(jìn)制數(shù)怎么轉(zhuǎn)換,教教算法在多舉點例子,
- 6 轉(zhuǎn)換成二進(jìn)制數(shù)
- 計算機是將信息轉(zhuǎn)換成二進(jìn)制進(jìn)行處理的,二進(jìn)制即“逢二進(jìn)一”,如(1101)2表示二進(jìn)制數(shù),下面.
- 225轉(zhuǎn)換成二進(jìn)制數(shù)是多少
- 二進(jìn)制數(shù)如何轉(zhuǎn)換成十進(jìn)制數(shù)?
- 一次外出旅游 作文
- 小數(shù)除法的意義與( )的意義相同,是已知( )的積與其中的一個( ),求另一個( )的運算.
- 描寫對大海向往的句子
- 已知二次函數(shù)y=f(x)的對稱軸x=1,與x軸有兩個交點,則,不等式f(x-1)>f(x+2)的解集是多少?
- 若不等式sinx√(a-sin^2x)小于等于1/2 x屬于R,則a的取值
- 一艘輪船在水流速度為2千米/時的河流中保持同一靜水速度航行,已知該輪船逆水航行10千米所用時間
- 已知關(guān)于x的方程2x+a/x+b=x,有兩個絕對值相等符號相反的實根,則ab的取值范圍分別是
猜你喜歡
- 1汽車的速度是火車速度的4/7.兩車同時從兩地相向而行,在離中點15千米處相遇,這時火車行了多少千米?
- 2某溶液中含有HCO3-、SO32-、CO32-、CH3COO-4種陰離子.若向其中加入足量的Na2O2后,溶液中離子濃度基本保持不變的是( ) A.CH3COO- B.SO32- C.CO32- D.HCO3-
- 3求幾個D開頭單詞
- 4化學(xué)方程式配平ClO2+KOH~KCl+KClO3+H2O大神們幫幫忙
- 5若a+b小于0,a分之b大于0,則a大于還是小于0,b大于還是小于0?
- 6純乙酸如何配成0.05mol/L乙酸
- 7“氨基酸堿基和mRNA堿基互補”能這么說嗎?問題是氨基酸由氨基羧基和R基團構(gòu)成,哪來堿基?
- 8你知道哪些成語?編一個小故事吧.
- 9做報價怎么計算墻面面積?
- 1018度42分36秒等于多少度
- 11寫出至少含有四個零,但一個零都不讀出來的六位整數(shù)、七位整數(shù)、八位整數(shù)各一個
- 12x+1/x的平方+8x+9