目录
一、算法实现进制之间的转换
(1)十进制转换为二进制
(2)二进制转换成十进制
二、Java中的API实现进制转换
(1)十进制转换为二进制
(2)十进制转换为八进制
(3)十进制转换为十六进制
(4)二进制转换为十进制
(5)八进制转换为十进制
(6)十六进制转换为十进制
一、算法实现进制之间的转换
(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){//二进制转换成十进制//1100int 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));} }