目录
一、算法实现进制之间的转换
(1)十进制转换为二进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(er(n)); } public static String er(int x){ //十进制转换成二进制 StringBuilder s=new StringBuilder(); while(x!=0){ s.append(x%2); x/=2; } return s.reverse().toString(); } }
后面的十进制转换成八进制,十六进制与该算法也是同样的,我就不细说了!
(2)二进制转换成十进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s=scanner.next(); System.out.println(er(s)); } public static int er(String s){ //二进制转换成十进制 //1100 int l=s.length(); int ans=0; for(int i=0;i<l;i++){ ans+=Math.pow(2,i)*Integer.parseInt(String.valueOf(s.charAt(l-i-1))); } return ans; } }
二、Java中的API实现进制转换
事实上,在Java中有相应的API可以帮助我们进行进制的转换,接下来让我们来看一下吧!
(1)十进制转换为二进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(Integer.toBinaryString(n)); } }
(2)十进制转换为八进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(Integer.toOctalString(n)); } }
(3)十进制转换为十六进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(Integer.toHexString(n)); } }
(4)二进制转换为十进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s=scanner.next(); //二进制转换成十进制 System.out.println(Integer.parseInt(s,2)); } }
(5)八进制转换为十进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s=scanner.next(); //二进制转换成十进制 System.out.println(Integer.parseInt(s,8)); } }
(6)十六进制转换为十进制
import java.util.ArrayDeque; import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改 public class Main { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); String s=scanner.next(); //二进制转换成十进制 System.out.println(Integer.parseInt(s,16)); } }