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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© shuren2015 中级黑马   /  2015-2-27 13:32  /  737 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

贴出自己刚学毕老师视频的时候写的一个当时自认为很简练的一段代码,觉得挺有意义的,虽然现在看来有很多要改善的地方。
  1. /*
  2. 进制转换终结版
  3. */
  4. class ArrayTest
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 System.out.println(trans(6,2));
  9.         }
  10.         /**
  11.         传入参数实现进制转换
  12.         @param x 要转换的数值
  13.         @param m 要转换成m位进制,限制在2,4,8,16位
  14.         @return 转换后的字符串
  15.         */
  16.         public static String trans(int x,int m)
  17.         {
  18.                 int core;
  19.                 int offset;
  20.                 char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  21.                 char[] arr=new char[32];
  22.                 int count=32;
  23.                 switch(m)
  24.                 {
  25.                         case 2:core=1;
  26.                                 offset=1;
  27.                                 break;
  28.                         case 4:core=3;
  29.                                 offset=2;
  30.                                 break;
  31.                         case 8:core=7;
  32.                                 offset=3;
  33.                                 break;
  34.                         case 16:core=15;
  35.                                 offset=4;
  36.                                 break;
  37.                         default:throw new RuntimeException("进制转换异常");
  38.                 }
  39.                         while(x!=0)
  40.                 {
  41.                         arr[--count]=chs[x&core];
  42.                         x=x>>>offset;
  43.                 }
  44.                 return new String(arr,count,32-count);

  45.         }
  46. }
复制代码





0 个回复

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