- package practice;
- /**
- * 进制转换优化(查表法)
- * @author Qihuan
- *
- */
- public class Demo2 {
-
- //定义功能:转换
- public static void trans(int num, int base, int offset){
- //定义一个表
- char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
-
- //定义一个临时储存器
- char[] arr = new char[32];
-
- //定义一个指针
- int pos = arr.length;
-
- //循环(移位)
- while (num != 0) {
- int temp = num & base;
- arr[--pos] = chs[temp];
- num = num >>> offset;
- }
-
- //遍历数组,打印结果
- for (int i = pos; i < arr.length; i++) {
- System.out.print(arr[i]);
- }
- }
-
- //十进制--->二进制
- public static void toBin(int num){
- System.out.print(num+" 十进制--->二进制 : ");
- trans(num, 1, 1);
- System.out.println();
- }
-
- //十进制--->八进制
- public static void toOct(int num){
- System.out.print(num+" 十进制--->八进制 : ");
- trans(num, 7, 3);
- System.out.println();
- }
-
- //十进制--->十六进制
- public static void toHex(int num){
- System.out.print(num+" 十进制--->十六进制 : ");
- trans(num, 15, 4);
- System.out.println();
- }
-
-
- public static void main(String[] args) {
- toBin(60);
- toOct(60);
- toHex(60);
- }
- }
复制代码 |
|