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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 淡忘初学者 于 2015-8-25 17:34 编辑

以下内容基于张孝祥老师视频课程笔记:        一般情况下,我们若要查找一个数的进制转换,一般会调用java中Integer对象自身的方法,例如:toHexString()(十转十六);toOctalString()(十转八);toBinaryString)(十转二);但一般考试或面试时有时会考到自定义进制转换,基于数组基础上,我们就可以很好地完成这一方法的编写(一个方法可满足所有进制转换要求
  1. public class ArrayTrans {
  2.         public static void trans(int num,int base,int offset){
  3.                 System.out.print(num+"转换完进制后的数为:");
  4.                 if(num==0){//如果本身要转的数为0,可以直接输出,因为0的所有进制数都为0
  5.                         System.out.println('0');
  6.                         return;
  7.                 }
  8.                 //定义选取的字节数组,这样数组可以直接在里面找元素
  9.                 char[] chs=new char[]{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  10.                 //定义一个整数int型4个8位的字节数组
  11.                 char[] arr=new char[32];
  12.                 int pos=arr.length;
  13.                 while(num!=0){
  14.                         //从最低位直接与运算,16进制&15,8进制&7,2进制&1
  15.                         int temp=num&base;
  16.                         //每&一次,就存一次
  17.                         arr[--pos]=chs[temp];
  18.                         //每次&完就进行降位:16进制降4位,8进制降3位,2进制降1位
  19.                         num=num>>>offset;
  20.                 }
  21.                 //输出进制运算完后的数:
  22.                 for(int x=pos;x<arr.length;x++){
  23.                         System.out.print(arr[x]);
  24.                 }
  25.                 System.out.println();
  26.         }
  27.         public static void main(String[] args) {
  28.                 //接下来就直接调用函数进行运算了
  29.                 System.out.print("转换16进制:");
  30.                 trans(32,15,4);
  31.                 System.out.print("转换8进制:");
  32.                 trans(14,7,3);
  33.                 System.out.print("转换2进制:");
  34.                 trans(6,1,1);
  35.         }
  36. }
复制代码
运行结果:
          有没有试一试呢~~看是否可以完成进制转换呢~~
          有空的时候可以自己写一写,可以加深数组的理解。        

评分

参与人数 2黑马币 +15 收起 理由
uniceguy + 10 学习了
朱艳 + 5 赞一个!

查看全部评分

3 个回复

倒序浏览
支持了,写的很好
回复 使用道具 举报
uniceguy 发表于 2015-8-29 20:37
支持了,写的很好

谢谢~~~你也加油
回复 使用道具 举报
楼主四天前发表 现在到那步了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马