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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. class JinZhi
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 toHex(60);
  6.         }
  7.         public static void toHex(int num)
  8.         {
  9.                 char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  10.                 char[] arr = new char[8];              
  11.                 int js=0;
  12.                 while(num!=0)
  13.                 {
  14.                         arr[js] = chs[num&15];
  15.                         num=num>>>4;
  16.                         js++;
  17.                 }
  18.                 for (int x=js;x>=0 ;x--)
  19.                 {
  20.                         System.out.print((char)arr[x]);
  21.                 }
  22.         }
  23. }
复制代码


6 个回复

倒序浏览
我也是初学者,

14.                        arr[js] = chs[num&15];

15.                        num=num>>>4;
这两是什么意思呀,我不太明白
回复 使用道具 举报
求十六进制的问题?把num的后四位作为chs的下标来求出十六进制赋给数组,不知道是要干嘛,如果要利用数组,就应该num&15以后跟chs中的数比较,如果相同就存入arr,这样也许就行了
回复 使用道具 举报
马嘉 发表于 2014-8-21 07:09
我也是初学者,

14.                        arr[js] = chs[num&15];

就是把num&15后的这个数作为chs的角标去查表所得的数据  存进去数字arr[js]里
回复 使用道具 举报
18行的  int x=js-1;
回复 使用道具 举报

对,就是这个问题。因为循环将要结束的时候,js又自增了,但是这个下标的字符不存在。
回复 使用道具 举报
加油!………………………………
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马