Java基於字符串的進制轉換(2、8、16進制與10進制的相互轉換)


# 2,8,16進制轉換成10進制

 

(1).使用Integer.parseInt()方法;轉換成負數只需要在字符串前加上負號-;大於Integer.MAX_VALUE或小於Integer.MIN_VALUE的轉換將會拋出錯誤。

 

// 2,8,16進制轉換成10進制
// 使用Integer.parseInt()方法;轉換成負數只需要在字符串前面加上負號-;大於Integer.MAX_VALUE或小於Integer.MIN_VALUE的轉換將會拋出錯誤。
int b = Integer.parseInt("1001", 2);    // 2進制轉10進制
int o = Integer.parseInt("12", 8);    // 8進制轉10進制
int h = Integer.parseInt("123ABC", 16);    // 16進制轉10進制
        
System.out.println("=== 字符串2,8,16進制轉換成整型10進制 ===");
System.out.println("1001(2) --> " + b + "(10)");
System.out.println("12(8) --> " + o + "(10)");
System.out.println("123ABC(16) --> " + h + "(10)");

 

 

 

 

(2).使用Integer.valueOf()方法;轉換成負數只需要在字符串前加上負號-;大於Integer.MAX_VALUE或小於Integer.MIN_VALUE的轉換將會拋出錯誤。

// 2,8,16進制轉換成10進制
// 使用Integer.valueOf()方法;轉換成負數只需要在字符串前加上負號-;大於Integer.MAX_VALUE或小於Integer.MIN_VALUE的轉換將會拋出錯誤。
Integer b = Integer.valueOf("1001", 2); // 2進制轉10進制
Integer o = Integer.valueOf("12", 8);    // 8進制轉10進制
Integer h = Integer.valueOf("123ABC", 16);    // 16進制轉10進制

System.out.println("=== Integer.valueOf() 字符串2,8,16進制轉換成整型10進制 ===");
System.out.println("1001(2) --> " + b + "(10)");
System.out.println("12(8) --> " + o + "(10)");
System.out.println("123ABC(16) --> " + h + "(10)");
            

 

 

(3).基於BigInteger的進制轉換,能夠存儲比Long.MAX_VALUE更大的數;

 

 

 

// 2,8,16進制轉換成10進制
// 使用BigInteger對象;轉換成負數只需要在字符串前加上負號-;BigInteger能夠存儲比Long.MAX_VALUE更大的數;
BigInteger b = new BigInteger("1001", 2); // 2進制轉10進制
BigInteger o = new BigInteger("12", 8);    // 8進制轉10進制
BigInteger h = new BigInteger("123ABC", 16);// 16進制轉10進制
 
System.out.println("=== 基於BigInteger的進制轉換 字符串2,8,16進制轉換成整型10進制 ===");
System.out.println("1001(2) --> " + b + "(10)");
System.out.println("12(8) --> " + o + "(10)");
System.out.println("123ABC(16) --> " + h + "(10)");

 

 

 

 

 

# 10進制轉2,8,16進制,返回類型String

 

(1).

 

// 10進制轉2,8,16進制,返回類型String
String tb = Integer.toBinaryString(9);    // 10進制轉2進制
String to = Integer.toOctalString(10);    // 10進制轉8進制
String th = Integer.toHexString(1194684);    // 10進制轉16進制

System.out.println("=== 10進制轉2,8,16進制,返回類型String ===");
System.out.println("9(10) --> " + tb + "(2)");
System.out.println("10(10) --> " + to + "(8)");
System.out.println("1194684(10) --> " + th + "(16)");

 

(2).使用Integer.toString() 10進制轉2,8,16進制;返回類型String

 

// 10進制轉2,8,16進制,返回類型String
// 使用Integer.toString()方法;
String tb = Integer.toString(9, 2); // 10進制轉2進制
String to = Integer.toString(10, 8);    // 10進制轉8進制
String th = Integer.toString(1194684, 16);// 10進制轉16進制

System.out.println("=== 使用Integer.toString() 10進制轉2,8,16進制;返回類型String ===");
System.out.println("9(10) --> " + tb + "(2)");
System.out.println("10(10) --> " + to + "(8)");
System.out.println("1194684(10) --> " + th + "(16)");

 

 

 

(3).基於BigInteger的進制轉換

// 使用BigInteger對象的toString方法;10進制轉2,8,16進制,返回類型String
BigInteger b = new BigInteger("1001", 2); // 2進制轉10進制
BigInteger o = new BigInteger("12", 8);    // 8進制轉10進制
BigInteger h = new BigInteger("123ABC", 16);// 16進制轉10進制
String tb = b.toString(2);    // 10進制轉2進制
String to = o.toString(8);    // 10進制轉8進制
String th = h.toString(16);    // 10進制轉16進制

System.out.println("1001(2) --> " + b + "(10) --> " + tb + "(2)");
System.out.println("12(8) --> " + o + "(10) --> " + to + "(8)");
System.out.println("123ABC(16) --> " + h + "(10) --> " + th + "(16)");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM