本帖最后由 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));
}
|
|