admin管理员组文章数量:1794759
【Java】十进制转二进制(多种算法)
题目:从键盘输入某个十进制整数,转换成对应的二进制整数并输出。
package chap3_方法; /** * 十进制转二进制 */ import Java.util.Scanner; public class Test08 { public static void main(String[] args) { //5.系统自带转二进制方法,对比以验证对错 System.out.println(Integer.toBinaryString(111)); System.out.println("============================"); //3.递归 栈 输出 to_base_n(111,2); System.out.println("\\n=========================="); //4. toBinary(111); System.out.println("============================"); //1.int + string Scanner scanner=new Scanner(System.in); System.out.print("请输入一个十进制数:"); int num1 =scanner.nextInt(); String str=""; while (num1!=0){ int mod1 = num1 % 2; num1 = num1 / 2; str= mod1 + str;//此语句不等于str=str+mod 与 str += mod 此处+是字符串连接符 // System.out.print(mod); //逆序输出 } System.out.println("转换为二进制数为:"+str); scanner.close(); System.out.println("============================"); //2. int num2 =111; //需要转二进制的数 int t = 0; //用来记录位数 int bin = 0; //用来记录最后的二进制数 int mod2 = 0; //用来存储余数 while(num2 != 0){ mod2 = num2 % 2; num2 = num2 / 2; bin += mod2* Math.pow(10, t); t++; } System.out.println(bin); } //3.递归 栈 输出 public static void to_base_n(int num3,int t){//int t 用来记录二进制 int mod3; mod3 = num3 % t; if (num3 >= 1){//如果n>=0 条件一直满足 导致 StackOverflowError:堆栈溢出错误 // System.out.print(mod1); //逆序输出 to_base_n(num3/t,t); System.out.print(mod3); //栈 输出 } } //4. private static void toBinary(int input) { int n = 1; StringBuilder result = new StringBuilder(); for (int i = 0; i < 32; i++) { result.append((input>>i) & n); } System.out.println(result.reverse()); } }版权声明:本文标题:【Java】十进制转二进制(多种算法) 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686574409a83481.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论