十转二思路:通过不断对2取模取余得到每一位的数 然后倒叙装入数组,最后遍历数组
package three; import java.util.Scanner; // 从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。 public class Test6 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个十进制的数"); int x = sc.nextInt(); System.out.println(x+"的二进制为"); int temp = x; int l =0;//获取数组长度 while(temp!=0){ temp = temp/2; l++; } int[] arr = new int[l]; int i = 1; int a;//存储二进制的数字 while(x!=0){ a = x%2; x = x/2; arr[arr.length-i]=a;//倒叙放入数组 i++; } for (int j : arr) { System.out.print(j); } } }二转10思路:将一串二进制的数转换为字符串,并将字符串转换为字符数组 根据转换规则循环求和得出结果
package demo; import java.util.Scanner; public class Demo13 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个二进制的数字"); int er = sc.nextInt(); int shi = 0; String s = String.valueOf(er); char[] arr = s.toCharArray(); for (int i = 0; i < arr.length; i++) { int a = arr[i]-48;//根据国际编码表转换为准确值 //此处直接获取字符的值无法使用, //需要根据国际表来转换,数字0对应的码值为48,所以此处减去48 shi = (int) (shi+a*Math.pow(2, (arr.length-i-1))); } System.out.println(er+"的十进制为"+shi); } }