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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夕颜 中级黑马   /  2015-4-18 23:56  /  323 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

十进制n转十六进制数方法:1、n&15赋值给容器;2、n右移4位并赋值给n;3、重复1,2。这个原理应该是正确的,写成代码,编译提示错误。代码如下:
class DToH
{
        /*十进制转16进制*/
        public static void dToH(int a)
        {
                StringBuffer mySb = new StringBuffer();
                do
                {
            if(a&15<10)
                            mySb.append(a&15);
                        else
                                mySb.append((char)(a&15-10+'A'));
                        System.out.println(((a&15)-10+'A'));
                        a = a>>>4;//a>>4不是正确的语句,>>>的原因:如果是负数,
                }
                while (a>0);
                System.out.println(mySb.reverse());//引用StringBuffer的属性时,要加上()
        }
        public static void main(String[] args)
        {
                int num = 6;
                int num1 = 60;
                //int[] arr = new int[3];

                dToB(num);
                dToH(num1);
               
        }

}
一起来看看  我错在哪里?

2 个回复

正序浏览
北京南瓜 发表于 2015-4-19 00:13
dToB(num);
这是什么鬼?

那个是我定义的另一个函数,十进制转二进制的,这里我没把函数复制过来
回复 使用道具 举报
   dToB(num);
这是什么鬼?{:3_62:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马