A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

  1. package practice;

  2. /**
  3. * 进制转换优化(查表法)
  4. * @author Qihuan
  5. *
  6. */

  7. public class Demo2 {
  8.        
  9.         //定义功能:转换
  10.         public static void trans(int num, int base, int offset){
  11.                 //定义一个表
  12.                 char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  13.                
  14.                 //定义一个临时储存器
  15.                 char[] arr = new char[32];
  16.                
  17.                 //定义一个指针
  18.                 int pos = arr.length;
  19.                
  20.                 //循环(移位)
  21.                 while (num != 0) {
  22.                         int temp = num & base;
  23.                         arr[--pos] = chs[temp];
  24.                         num = num >>> offset;
  25.                 }
  26.                
  27.                 //遍历数组,打印结果
  28.                 for (int i = pos; i < arr.length; i++) {
  29.                         System.out.print(arr[i]);
  30.                 }
  31.         }
  32.        
  33.         //十进制--->二进制
  34.         public static void toBin(int num){
  35.                 System.out.print(num+"  十进制--->二进制 : ");
  36.                 trans(num, 1, 1);
  37.                 System.out.println();
  38.         }
  39.        
  40.         //十进制--->八进制
  41.         public static void toOct(int num){
  42.                 System.out.print(num+"  十进制--->八进制 : ");
  43.                 trans(num, 7, 3);
  44.                 System.out.println();
  45.         }
  46.        
  47.         //十进制--->十六进制
  48.         public static void toHex(int num){
  49.                 System.out.print(num+"  十进制--->十六进制 : ");
  50.                 trans(num, 15, 4);
  51.                 System.out.println();
  52.         }
  53.        
  54.        
  55.         public static void main(String[] args) {
  56.                 toBin(60);
  57.                 toOct(60);
  58.                 toHex(60);
  59.         }
  60. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马