黑马程序员技术交流社区

标题: 用多种方式实现十进制转二进制 [打印本页]

作者: JRT    时间: 2015-4-22 01:42
标题: 用多种方式实现十进制转二进制
本帖最后由 JRT 于 2015-6-17 18:20 编辑

我只做了三种,待大神补充
import java.io.BufferedReader;
import java.io.IOException;                                                                                                                                                                import java.io.InputStreamReader;
import java.util.LinkedList;

/*需求:十进制转二进制
* 思路:除二倒取余
* */
public class ToBinary {
        public static void main(String[] args) throws IOException {
                System.out.println("please input a number:");
        String num=new BufferedReader(new InputStreamReader(System.in)).readLine();
                toBin1(Integer.parseInt(num));
                toBin2(Integer.parseInt(num));
                System.out.println();
                toBin3(Integer.parseInt(num));
        }
方法一:StringBuffer容器的应用
        public static void toBin1(int num){
        //定义一个容器
                StringBuffer strb=new StringBuffer();
                 while(num>0){
                         strb.append(num%2);
                         num/=2;
                 }
                 System.out.println(strb.reverse());//reverse()方法的反转功能
        }
  方法二:用递归实现(最抽象的方法)
        public static void toBin2(int num){
                if(num>0){
                    toBin1(num/2);
                }
                System.out.println(num%2);
        }
  方法三:集合类LinkedList的addFirst()方法将所有的元素压在栈底,倒着输出
        public static void toBin3(int num){
                LinkedList<Integer>  li=new LinkedList<>();
        while(num>0){
                  li.addFirst(num%2);
                  num/=2;
        }
        System.out.println(li);
        }
}
方法四,调用java的库函数toBinary
  public static void toBin4(int num){
      System.out.println(Integer.toBinary(num));
}

作者: 横看成岭侧成锋    时间: 2015-4-22 08:23
很好顶一个
作者: 蓝墨清幽    时间: 2015-4-22 09:33
查表法。字数限制,贴不过来,截图了。

U (138.21 KB, 下载次数: 24)

U

作者: JRT    时间: 2015-4-25 15:18
:handshake




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