目录
关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客
十进制转其他进制
使用 Integer.toString(int n,int radix) 方法,该方法第一个参数是需要进行进制转换的数(int),第二个参数是需要进行转换的进制(int),返回的是一个Integer类型的数。
//十进制转其他进制
System.out.println("十进制转其他进制");
int n=200;
System.out.println(n+"的二进制是:"+Integer.toString(n,2));
System.out.println(n+"的八进制是:"+Integer.toString(n,8));
System.out.println(n+"的十进制是:"+Integer.toString(n,10));
System.out.println(n+"的十六进制是:"+Integer.toString(n,16));
使用 BigInteger(String num).toString(int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个String类型的字符串。
// 使用BigInteger对象;转换成负数只需要在字符串前加上负号-;BigInteger能够存储比Long.MAX_VALUE更大的数;
String num="200";
String s1=new BigInteger(num).toString(2);
String s2=new BigInteger(num).toString(8);
String s3=new BigInteger(num).toString(10);
String s4=new BigInteger(num).toString(16);
System.out.println(num+"的二进制是:"+s1);
System.out.println(num+"的八进制是:"+s2);
System.out.println(num+"的十进制是:"+s3);
System.out.println(num+"的十六进制是:"+s4);
System.out.println("——————————————————————————————————————————");
其他进制转十进制
使用 Integer.parseInt(String s , int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个Integer类型的数。
String s1="11001000";
String s2="310";
String s3="200";
String s4="c8";
System.out.println("二进制数"+s1+"的十进制是:"+Integer.parseInt(s1,2));
System.out.println("八进制数"+s2+"的十进制是:"+Integer.parseInt(s2,8));
System.out.println("十进制数"+s3+"的十进制是:"+Integer.parseInt(s3,10));
System.out.println("十六进制数"+s4+"的十进制是:"+Integer.parseInt(s4,16));
使用 new BigInteger(String val, int radix) 方法,该方法第一个参数是需要进行进制转换的数(String),第二个参数是需要进行转换的进制(int),返回的是一个BigInteger类型的数。
//其他进制转十进制
BigInteger b1 = new BigInteger("11001000", 2);
BigInteger b2 = new BigInteger("310", 8);
BigInteger b3 = new BigInteger("200", 10);
BigInteger b4 = new BigInteger("c8", 16);
System.out.println("二进制数11001000的十进制是:"+b1);
System.out.println("八进制数310的十进制是:"+b2);
System.out.println("十进制数200的十进制是:"+b3);
System.out.println("十六进制数c8的十进制是:"+b4);
System.out.println("——————————————————————————————————————————");
实战: A进制转B进制
思路:将A进制数转化为十进制数,再将10进制数转化为B进制数
public class Main {
public static void main(String[] args) {
//十进制转其他进制
// System.out.println("十进制转其他进制");
// int n=200;
// System.out.println(n+"的二进制是:"+Integer.toString(n,2));
// System.out.println(n+"的八进制是:"+Integer.toString(n,8));
// System.out.println(n+"的十进制是:"+Integer.toString(n,10));
// System.out.println(n+"的十六进制是:"+Integer.toString(n,16));
// System.out.println("——————————————————————————————————————————");
//其他进制转十进制
// System.out.println("其他进制转十进制");
// String s1="11001000";
// String s2="310";
// String s3="200";
// String s4="c8";
// System.out.println("二进制数"+s1+"的十进制是:"+Integer.parseInt(s1,2));
// System.out.println("八进制数"+s2+"的十进制是:"+Integer.parseInt(s2,8));
// System.out.println("十进制数"+s3+"的十进制是:"+Integer.parseInt(s3,10));
// System.out.println("十六进制数"+s4+"的十进制是:"+Integer.parseInt(s4,16));
// System.out.println("——————————————————————————————————————————");
//
//八进制转十六进制
System.out.println("八进制转十六进制");
String s8="310";//八进制数
int num8=Integer.parseInt(s8,8);//先将八进制数转化为十进制数
System.out.println("八进制数"+s8+"转换为十六进制数是:"+Integer.toString(num8,16));
//十六进制转二进制
System.out.println("十六进制转二进制");
String s16="c8";//十六进制数
int num16=Integer.parseInt(s16,16);//先将十六进制数转化为十进制数
System.out.println("十六进制数"+s16+"转换为二进制数是:"+Integer.toString(num16,2));
System.out.println("——————————————————————————————————————————");
}
}
import java.math.BigInteger;
public class Main {
public static void main(String[] args) {
// String num="200";
// String s1=new BigInteger(num).toString(2);
// String s2=new BigInteger(num).toString(8);
// String s3=new BigInteger(num).toString(10);
// String s4=new BigInteger(num).toString(16);
// System.out.println(num+"的二进制是:"+s1);
// System.out.println(num+"的八进制是:"+s2);
// System.out.println(num+"的十进制是:"+s3);
// System.out.println(num+"的十六进制是:"+s4);
// System.out.println("——————————————————————————————————————————");
//
//其他进制转十进制
//使用BigInteger对象;转换成负数只需要在字符串前加上负号-;BigInteger能够存储比Long.MAX_VALUE更大的数;
// BigInteger b1 = new BigInteger("11001000", 2);
// BigInteger b2 = new BigInteger("310", 8);
// BigInteger b3 = new BigInteger("200", 10);
// BigInteger b4 = new BigInteger("c8", 16);
// System.out.println("二进制数11001000的十进制是:"+b1);
// System.out.println("八进制数310的十进制是:"+b2);
// System.out.println("十进制数200的十进制是:"+b3);
// System.out.println("十六进制数c8的十进制是:"+b4);
// System.out.println("——————————————————————————————————————————");
BigInteger b8 = new BigInteger("310", 8);
System.out.println("八进制数310的十六进制是:"+b8.toString(16));
BigInteger b16 = new BigInteger("c8", 16);
System.out.println("十六进制数c8的二进制是:"+b16.toString(2));
}
}