十转二思路:通过不断对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);
}
}