黑马程序员技术交流社区

标题: 百思不得其解,求真相…… [打印本页]

作者: 李兆宁    时间: 2012-8-10 08:34
标题: 百思不得其解,求真相……
import java.util.*;
class ArrayTest2
{
        public static void main(String[] args)
        {
                toBin(6);
        }


        public static void toBin(int num)
        {
                //StringBuffer s = nuw StringBuffer();
                //定义二进制表
                char[] ch = new char[]{'0','1'};
                //定义临时存储器
                char[] arr = new char[32];
                //定义指针
                int p = arr.length;
               
                while (num>0)
                {
                        arr[--p] = ch[num & 1];
                        num = num >>> 1;
                }
                for(int i=p; i<arr.length; i++)
                {
                        System.out.print(arr[p]);
                }
        }
}

编译无错误,运行无异常,就是出不来正确结果
结果输出:
111
求真相,谢谢

作者: 孙飞    时间: 2012-8-10 08:48
本帖最后由 孙飞 于 2012-8-10 08:56 编辑

class ArrayTest2
{
        public static void main(String[] args)
        {
                toBin(6);
        }

        public static void toBin(int num)
        {
                //StringBuffer s = nuw StringBuffer();
                //定义二进制表
                char[] ch = new char[]{'0','1'};
                //定义临时存储器
                char[] arr = new char[32];
                //定义指针
                int p = arr.length;
               
                while (num>0)
                {
                        arr[--p] = ch[num & 1];
                        num = num >>> 1;
                }
                for(int a=p; a<arr.length;a++)
                {
                        System.out.print(arr[a);//这里打印的应该是arr[a]
                }
        }
}

作者: 李兆宁    时间: 2012-8-10 08:58
问题解决,唉,太失误了,没仔细看,谢谢
作者: 朱志辉    时间: 2012-8-10 09:01
很明显,输出时索引错了。
把arr[p]改为arr[i]就对了。
p是arr.length,即32。
结果是110。
作者: 李兆宁    时间: 2012-8-10 09:05
这个怎么加分啊?




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