进制转换,重点长字符串类型

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)");

复制代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值