黑马程序员技术交流社区

标题: 大家帮忙分析一下下面代码 [打印本页]

作者: 于文露    时间: 2011-9-28 18:19
标题: 大家帮忙分析一下下面代码
class  ArrayTest
{
        public static void main(String[] args)
        {
                //toBin(6);
                toHex_2(1);
        }
       
        /*
        查表法
        */
        public static void toHex_2(int num)
        {
                char[] chs ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
                char[] arr = new char[8];
                int pos = arr.length;
                while(num!=0)
                {
                        arr[--pos] = chs[num&15];
                        num=num>>>4;
                }
                for(int x=pos;x<arr.length;x++)
                {
                        System.out.print(arr[x]+',');
                }
        }
}
我的运行结果是93,如果是想得到60的十六进制,运行结果是95111,得不出毕老师的结果3c

到底是怎么回事呢,是代码有误么,还是机器的原因呢
作者: 匿名    时间: 2011-9-28 19:29
for(int x=pos;x<arr.length;x++)
       {
            System.out.print(arr[x]);
        }
前面的都没有问题,for循环的打印语句错了,把+','去掉或改成
","------>这才是能打印逗号
作者: 匿名    时间: 2011-9-29 01:29
楼主,这个就是粗心,大家都比较容易犯这种错误,比如那个单词打错了,或者由于汉语和拼音的切换问题

你这个就是在for循环的输出语句中

System.out.println(arr[x]+",");

是双引号,而不是单引号




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