激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例

Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例

2020-07-21 11:46aitaoke Java教程

這篇文章主要介紹了Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能,結(jié)合實(shí)例形式分析了java數(shù)學(xué)運(yùn)算的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能。分享給大家供大家參考,具體如下:

這是用java寫的進(jìn)制轉(zhuǎn)換器,包括10、2、8、16進(jìn)制之間共12種的相互轉(zhuǎn)換。輸入一個(gè)要轉(zhuǎn)換的數(shù)之后,按提示選擇所采用的轉(zhuǎn)換方式,輸出轉(zhuǎn)換的結(jié)果。

注:新上傳的文件是在此前代碼(下面的3. 原java代碼)的基礎(chǔ)上做了改進(jìn),能更好地實(shí)現(xiàn)封裝。

1. SystemConvert.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
package day8;
import java.util.Scanner;
public class SystemConvert {
  static Scanner scanner = new Scanner(System.in);
  static String s = "";
  // 定義10進(jìn)制轉(zhuǎn)2進(jìn)制的方法。
  public static String C10T2(int numb) {
    String result = "";
    for (int i = numb; i > 0; i /= 2)
      result = i % 2 + result;
    return result;
  }
  // 定義10進(jìn)制轉(zhuǎn)8進(jìn)制的方法。
  public static String C10T8(int numb) {
    String result = "";
    for (int i = numb; i > 0; i /= 8)
      result = i % 8 + result;
    return result;
  }
  // 定義2進(jìn)制轉(zhuǎn)10進(jìn)制的方法。
  public static int C2T10(int numb) {
    int k = 0, result = 0;
    // String result=null;
    for (int i = numb; i > 0; i /= 10) {
      result += (i % 10) * Math.pow(2, k);
      k++;
    }
    return result;
  }
  // 定義8進(jìn)制轉(zhuǎn)10進(jìn)制的方法。
  public static int C8T10(int numb) {
    int k = 0, temp = 0;
    for (int i = numb; i > 0; i /= 10) {
      temp += (i % 10) * Math.pow(8, k);
      k++;
    }
    return temp;
  }
  public static void convert10(int numb, int to) {
    String s = "";
    switch (to) {
    case 2:
      s = "" + C10T2(numb);
      break;
    case 8:
      s = "" + C10T8(numb);
      break;
    case 16:
      s = Integer.toHexString(numb).toUpperCase();
      break;
    default:
      System.out.println("wrong input!");
    }
    System.out.println(s);
  }
  public static void convert2(int numb, int to) {
    String s = "";
    switch (to) {
    case 10:
      s = "" + C2T10(numb);
      break;
    case 8:
      s = "" + C10T8(C2T10(numb));
      break;
    case 16:
      s = Integer.toHexString(C2T10(numb)).toUpperCase();
      break;
    default:
      System.out.println("wrong input!");
    }
    System.out.println(s);
  }
  public static void convert8(int numb, int to) {
    String s = "";
    switch (to) {
    case 2:
      s = "" + C10T2(C8T10(numb));
      break;
    case 10:
      s = "" + C8T10(numb);
      break;
    case 16:
      s = Integer.toHexString(C8T10(numb)).toUpperCase();
      break;
    default:
      System.out.println("wrong input!");
    }
    System.out.println(s);
  }
  public static void convert16(String numb, int to) {
    String s = "";
    switch (to) {
    case 2:
      int temp2 = Integer.parseInt(numb, 16);
      s = C10T2(temp2);
      break;
    case 8:
      int temp3 = Integer.parseInt(numb, 16);
      s = C10T8(temp3);
      break;
    case 10:
      int temp = Integer.parseInt(numb, 16);
      s = "" + temp;
      break;
    default:
      System.out.println("wrong input!");
    }
    System.out.println(s);
  }
  public static void convert(int numb, int from, int to) {
    switch (from) {
    case 10:
      convert10(numb, to);
      break;
    case 2:
      convert2(numb, to);
      break;
    case 8:
      convert8(numb, to);
      break;
    default:
      System.out.println("wrong input!");
    }
  }
  public static void convert(String numb, int from, int to) {
    switch (from) {
    case 16:
      convert16(numb, to);
      break;
    default:
      System.out.println("wrong input!");
    }
  }
  public static void main(String[] args) {
    System.out.println("要轉(zhuǎn)的是16進(jìn)制數(shù)嗎?\n輸入1。代表是;\n輸入2.代表不是.\n");
    int input = scanner.nextInt();
    switch (input) {
    case 1:
      System.out.println("請輸入一個(gè)16進(jìn)制數(shù):");
      String numb = scanner.next();
      System.out.println("轉(zhuǎn)成什么進(jìn)制的數(shù)?");
      int to = scanner.nextInt();
      convert(numb, 16, to);
      break;
    case 2:
      System.out.println("請輸入一個(gè)數(shù):");
      int numb2 = scanner.nextInt();
      System.out.println("從什么進(jìn)制數(shù)轉(zhuǎn)起?");
      int from = scanner.nextInt();
      System.out.println("轉(zhuǎn)成什么進(jìn)制的數(shù)?");
      int to2 = scanner.nextInt();
      convert(numb2, from, to2);
      break;
    default:
      System.out.println("wrong input!");
    }
  }
}

2. 運(yùn)行效果截圖:

Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例

Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例

3. 原java代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import java.util.Scanner;
public class SystemConvert {
  static Scanner scanner = new Scanner(System.in);
  static String s = "";
  public static void convert() {
    System.out.println("please input a number:");
    String numb = scanner.next();
    System.out.println("choose a way:\n輸入1,表示10進(jìn)制轉(zhuǎn)2進(jìn)制;\n"
        + "輸入2,表示2進(jìn)制轉(zhuǎn)10進(jìn)制;\n" + "輸入3,表示10進(jìn)制轉(zhuǎn)8進(jìn)制;\n"
        + "輸入4,表示8進(jìn)制轉(zhuǎn)10進(jìn)制;\n" + "輸入5,表示10進(jìn)制轉(zhuǎn)16進(jìn)制;\n"
        + "輸入6,表示16進(jìn)制轉(zhuǎn)10進(jìn)制;\n" + "輸入7,表示2進(jìn)制轉(zhuǎn)8進(jìn)制;\n"
        + "輸入8,表示2進(jìn)制轉(zhuǎn)16進(jìn)制;\n" + "輸入9,表示8進(jìn)制轉(zhuǎn)2進(jìn)制;\n"
        + "輸入10,表示8進(jìn)制轉(zhuǎn)16進(jìn)制;\n" + "輸入11,表示16進(jìn)制轉(zhuǎn)2進(jìn)制;\n"
        + "輸入12,表示16進(jìn)制轉(zhuǎn)8進(jìn)制;\n");
    int input = scanner.nextInt();
    switch (input) {
    case 1: // 10>>>2
      s = "" + C10T2(numb);
      break;
    case 2: // 2>>>10
      s += C2T10(numb);
      break;
    case 3: // 10>>>8
      s = "" + C10T8(numb);
      break;
    case 4: // 8>>>10
      s = "" + C8T10(numb);
      break;
    case 5: // 10>>>16
      s = Integer.toHexString(Integer.valueOf(numb)).toUpperCase();
      break;
    case 6:// 16>>>10
      int temp = Integer.parseInt(numb, 16);
      s = "" + temp;
      break;
    case 7: // 2>>>8
      s = "" + C10T8(Integer.toString(C2T10(numb)));
      break;
    case 8: // 2>>>16
      s = Integer.toHexString(Integer.valueOf(C2T10(numb))).toUpperCase();
      break;
    case 9: // 8>>>2
      s = "" + C10T2(Integer.toString(C8T10(numb)));
      break;
    case 10:// 8>>>16
      s = Integer.toHexString(Integer.valueOf(C8T10(numb))).toUpperCase();
      break;
    case 11:// 16>>>2
      int temp2 = Integer.parseInt(numb, 16);
      s = Integer.toBinaryString(temp2);
      break;
    case 12:// 16>>>8
      int temp3 = Integer.parseInt(numb, 16);
      s = C10T8(Integer.toString(temp3));
      break;
    default:
      System.out.println("Wrong input!");
    }
    System.out.println(s);
  }
  public static int C2T10(String numb) {
    int k = 0, result = 0;
    // String result=null;
    for (int i = Integer.valueOf(numb); i > 0; i /= 10) {
      result += (i % 10) * Math.pow(2, k);
      k++;
    }
    return result;
  }
  public static int C8T10(String numb) {
    int k = 0, temp = 0;
    for (int i = Integer.valueOf(numb); i > 0; i /= 10) {
      temp += (i % 10) * Math.pow(8, k);
      k++;
    }
    return temp;
  }
  public static String C10T8(String numb) {
    String result = "";
    for (int i = Integer.valueOf(numb); i > 0; i /= 8)
      result = i % 8 + result;
    return result;
  }
  public static String C10T2(String numb) {
    String result = "";
    for (int i = Integer.valueOf(numb); i > 0; i /= 2)
      result = i % 2 + result;
    return result;
  }
  public static void main(String[] args) {
    SystemConvert.convert();
  }
}

4. 運(yùn)行截圖:

Java實(shí)現(xiàn)復(fù)雜的進(jìn)制轉(zhuǎn)換器功能示例

 

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩一区,二区,三区,久久精品 | japanese xxxxhd | 免费一级特黄毛片 | 亚洲成人午夜精品 | 欧美一级aa免费毛片 | 亚洲性爰 | 久久亚洲一区二区三区成人国产 | 免费观看高清视频网站 | 91一区二区三区久久久久国产乱 | videos 欧美 | 日本欧美视频 | 精品国产96亚洲一区二区三区 | 亚洲国产中文字幕 | 北京一级毛片 | 欧美性生活免费视频 | 欧美18—19sex性护士中国 | 中文字幕在线永久视频 | 毛片免费观看视频 | 中文字幕精品在线观看 | 热99在线| 欧洲精品色 | 国产一区二区在线免费观看 | 美女黄网站免费观看 | 欧美亚洲国产日韩 | 久久人人爽人人爽人人片av高请 | av电影在线免费观看 | 黄色国产在线观看 | 欧产日产国产精品99 | 中文字幕在线观看www | 日本在线一区二区 | 91久久线看在观草草青青 | 久久久国产精品网站 | 国产欧美日韩在线不卡第一页 | 欧美www | 欧美激情精品久久久久久黑人 | 日韩中字在线 | 蝌蚪久久窝 | 日韩黄色片免费看 | 亚洲第一男人天堂 | 成年人视频在线免费播放 | 国产精品久久久久久久久久久久久久久久 |