黑马程序员技术交流社区

标题: 十进制转十六进制 [打印本页]

作者: 夕颜    时间: 2015-4-18 23:56
标题: 十进制转十六进制
十进制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);
               
        }

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

作者: 北京南瓜    时间: 2015-4-19 00:13
   dToB(num);
这是什么鬼?{:3_62:}
作者: 夕颜    时间: 2015-4-19 00:20
北京南瓜 发表于 2015-4-19 00:13
dToB(num);
这是什么鬼?

那个是我定义的另一个函数,十进制转二进制的,这里我没把函数复制过来




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