进制转换总结

1,普通进制转换

1. 十进制转二进制

int decNum = 10;
String binaryNum = Integer.toBinaryString(decNum);
System.out.println(binaryNum);  // 输出:1010

2. 十进制转八进制


int decNum = 10;
String octalNum = Integer.toOctalString(decNum);
System.out.println(octalNum);  // 输出:12

3. 十进制转十六进制

int decNum = 10;
String hexNum = Integer.toHexString(decNum);
System.out.println(hexNum);  // 输出:a

4. 二进制转十进制

String binaryNum = "1010";
int decNum = Integer.parseInt(binaryNum, 2);
System.out.println(decNum);  // 输出:10

5. 八进制转十进制

String octalNum = "12";
int decNum = Integer.parseInt(octalNum, 8);
System.out.println(decNum);  // 输出:10

6. 十六进制转十进制

String hexNum = "a";
int decNum= Integer.parseInt(hexNum,16);
System.out.println(decNum);  // 输出:10  

2,大数的进制转换:

在Java中,如果要进行大数的进制转换,可以使用`BigInteger`类。下面是一个将十进制大数转换为二进制、八进制和十六进制的示例:

import java.math.BigInteger;

public class BigIntegerExample {
    public static void main(String[] args) {
        String bigNumberStr = "12345678901234567890";
        
        // 将十进制大数转换为二进制
        BigInteger bigNumber = new BigInteger(bigNumberStr);
        String binaryStr = bigNumber.toString(2);
        System.out.println("二进制: " + binaryStr);

        // 将十进制大数转换为八进制
        String octalStr = bigNumber.toString(8);
        System.out.println("八进制: " + octalStr);

        // 将十进制大数转换为十六进制
        String hexStr = bigNumber.toString(16);
        System.out.println("十六进制: " + hexStr);
    }
}

输出结果如下:
二进制: 1011000110100111110011000000011111011101100110101011110010100110
八进制: 132653365427234702146
十六进制: 2dfdc4a632ef3d96a4

其他进制转十进制

Java中使用`BigInteger`类来处理大数的其他进制转换为10进制。

`BigInteger`类提供了一个静态方法`valueOf(String val, int radix)`,可以将一个指定进制的字符串转换为一个`BigInteger`类型的对象,并且该对象表示以10进制方式表示的值。其中,参数`val`是要转换的字符串,参数`radix`是该字符串所使用的进制数。

例如,如果需要将一个16进制大数转换为10进制,可以使用以下代码:

String hexStr = "7B"; // 16进制大数
BigInteger decimalNum = new BigInteger(hexStr, 16); // 将16进制大数转换为10进制整数
System.out.println(decimalNum); // 输出:123

同样地,如果要将一个8进制大数转换为10进制,可以这样写:

String octStr = "173"; // 8进制大数
BigInteger decimalNum = new BigInteger(octStr, 8); // 将8进制大数转换为10进制整数
System.out.println(decimalNum); // 输出:123

需要注意的是,在进行任何类型的数字转换时,都应该注意数据溢出问题。如果数字过大而无法被Java中的整型类型表示,则会导致溢出,并得到错误的结果。在这种情况下,可能需要使用Java中的`BigDecimal`或者更加专业化、能够支持更多位运算和更多精度控制的第三方库。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值