黑马程序员技术交流社区

标题: 以下循环哪里出了问题? [打印本页]

作者: 尘埃落定    时间: 2014-7-18 17:03
标题: 以下循环哪里出了问题?
如下内容:
十进制转十六进制的代码,为什么结果不对?



  1. public static void toHex(int num)
  2.         {
  3.                 StringBuffer sb = new StringBuffer();
  4.                 while (num!=0)
  5.                 {
  6.                         int n1 = num&15;
  7.                         System.out.println(n1);
  8.                         if (n1>9)
  9.                         {
  10.                                 sb.append((char)(n1-10+'a'));
  11.                         }
  12.                         else
  13.                         {
  14.                                 sb.append(n1);
  15.                         }
  16.                         n1 = n1>>>4;
  17.                 }
  18.                 System.out.println(sb.reverse());
  19.         }
复制代码


作者: More    时间: 2014-7-18 17:27
sb.reverse()这个方法在哪??
作者: 尘埃落定    时间: 2014-7-18 18:06
More 发表于 2014-7-18 17:27
sb.reverse()这个方法在哪??

发现错误了,右移四位的是num,不是n1。
作者: shijianws    时间: 2014-7-18 18:09
sb.reverse(),字符串缓冲里有,反转字符串的字符
作者: More    时间: 2014-7-18 20:47
尘埃落定 发表于 2014-7-18 18:06
发现错误了,右移四位的是num,不是n1。

意思是你那个方法定义了  但是你没复制过来是吧




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