Java进制转换
最近在找进制转换的学习视频,发现解法是千奇百怪
有从c++直接转化成java的短除法
还有一堆莫名其妙的方法
在查了一晚上资料后,我对此做了整理
16进制转化成8进制
public class Main { public static void main(String[] args) { // 16进制数的字符串表示 String hex = "39"; // 将16进制数转换为整数 int decimal = Integer.parseInt(hex, 16); // 将整数转换为8进制的字符串表示 String octal = Integer.toOctalString(decimal); // 输出结果 System.out.println("16进制数 " + hex + " 对应的8进制数为: " + octal); } }
2进制转化成10进制
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a= scanner.nextInt(); //输入整型数 String string=Integer.toString(a); //将整数转化成字符串 int b=Integer.parseInt(string,2); //进制转换,第一个参数是字符串,第二个参数是基数,进制 System.out.println(b); } }
16进制转化成10进制
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str=scanner.nextLine(); //输入一个十六进制的字符串 int a=Integer.parseInt(str,16); //将字符串按照16进制转化成整形数 System.out.println(a); } }
10进制转化成2进制
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a= scanner.nextInt(); //输入整型数 String string=Integer.toBinaryString(a); //将整数转化成字符串 System.out.println(string); } }
10进制转化成16进制
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a= scanner.nextInt(); //输入整型数 String string=Integer.toHexString(a); //将整数转化成字符串 System.out.println(string); } }
短除法
将十进制数转化为任意的类型
返回字符串
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a= sc.nextInt(); //输入一个十进制的字符串 String str=jinzhizhuanhuan(a,2); System.out.println(str); } public static String jinzhizhuanhuan(int a,int b){ StringBuilder sb=new StringBuilder(); while(a>0){ sb.append(a%b); a/=b; } return sb.reverse().toString(); } }
总结
Integer类中的静态方法parseInt可以将字符串转化成十进制数
即是字符串转整形数 这时的形参是字符串
而这个parsInt方法重载
当传入两个形参的时候 第一形参依旧是字符串 第二个形参可以传入进制基数radix
代表你想把什么进制的数转化成十进制数
获得到的十进制数 可以再通过Integer类里面的静态方法to...转化为对应的进制
返回值类型是字符串