黑马程序员技术交流社区

标题: 进制的转换 [打印本页]

作者: 李力    时间: 2013-4-5 23:18
标题: 进制的转换
class Demo00
{
   public static void main(String[] args)
        {
                toBin(6);
        }
        public static void toBin(int num)
        {
                StringBuffer sb = new StringBuffer();
                while(num>0)
                {
                        sb.append(num%2);
                        num = num/2;

                }
                System.out.print(sb.reverse());
        }


}
//十进制转换为二进制,这是毕老师写的实现方法!这个只适合num>0;
//如果num<o是不是先求正的数的二进制后再取反加一呢?
作者: 田光峰    时间: 2013-4-5 23:31
class Demo00
{
   public static void main(String[] args)
        {
                toBin(6);
        }
        public static void toBin(int num)
        {
                StringBuffer sb = new StringBuffer();
                while(num>0)
                {
                        sb.append(num%2);
                        num = num/2;

                }
                System.out.print(sb.reverse());
        }


}

中的 sb.append(num%2);
                        num = num/2;
把十进制的数不断除二取余把结果放到StringBuilder中去
然后取反取出。
如果一个数用二进制表示的话,那么他的负数是 每位取反并且加一。
作者: 郭彦君    时间: 2013-4-5 23:36
是的,如果是负数,先将负数的绝对值转成2进制,然后取该2进制的反码,最后在将反码加1.
比如求-5的二进制,先求5的二进制,是0000 0101;
再取反码,为1111 1010;
然后再加1,变成1111 1011,就是-5的二进制
作者: 杨武林    时间: 2013-4-5 23:51
1.先将负数的绝对值转换成二进制,
2.然后求该二进制数的反码,
3.最后为第二步得到的二进制数+1
作者: 郭沐昌    时间: 2013-4-5 23:56
~这是取反码的标识
在加上1
作者: 李力    时间: 2013-4-7 09:41
好的谢谢各位大神!
作者: 李力    时间: 2013-4-7 09:42
前段时间网线不给力!时有时无!抱歉啊!




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