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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李兆宁 中级黑马   /  2012-8-10 08:34  /  1711 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
求真相,谢谢

评分

参与人数 1技术分 +1 收起 理由
张_涛 + 1 新人提问,赞一个!

查看全部评分

4 个回复

倒序浏览
本帖最后由 孙飞 于 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]
                }
        }
}
回复 使用道具 举报
问题解决,唉,太失误了,没仔细看,谢谢
回复 使用道具 举报
很明显,输出时索引错了。
把arr[p]改为arr[i]就对了。
p是arr.length,即32。
结果是110。
回复 使用道具 举报
这个怎么加分啊?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马