黑马程序员技术交流社区

标题: 看看这个代码哪里出问题了 十进制转十六进制 [打印本页]

作者: 8047107    时间: 2013-5-13 18:43
标题: 看看这个代码哪里出问题了 十进制转十六进制
本帖最后由 8047107 于 2013-5-13 18:53 编辑
  1. class toHex
  2. {

  3.         public static void toHex(int num)
  4.         {
  5.                 char [] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  6.                 char [] arr=new char [8];

  7.                 for(int x=0; x<8; x++)
  8.                 {
  9.                         int temp=num & 15;
  10.                         arr[x]=arr[temp];// 发现问题了。这里应该是arr[x]=chs[temp];
  11.                         num  = num >>> 4;
  12.                 }
  13.                 for (int x=0;x<arr.length ;x++ )
  14.                 {
  15.                         System.out.print(arr[x]+',');//这里应该是双引号
  16.                 }

  17.         }
  18.         public static void main (String[] args)
  19.         {
  20.                 toHex(60);

  21.         }

  22. }
复制代码
编译通过,运行就出错。说是角标越界[问题已经解决]


郁闷了 刚解决一个 又来一个【解决】

太丢人了 不该发这个帖子啊。第二个问题是因为我把双引号打成单引号了。把本来应该打印字符串的结果弄成字符了 结果肯定打印不一样啦~~老是犯这种低级错误


作者: 8047107    时间: 2013-5-13 18:46
擦自己发现了。。arr[x]=chs[temp]猜对!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2