【java养成】:进制转换(16进制转10进制、10进制转10进制、10进制转2进制、10进制转2进制、10进制转8进制、10进制转16进制。2进制转10进制、8进制转10进制、16进制转10进制。)

该博客聚焦于Java开发中的进制转换。介绍了十进制、二进制、八进制和十六进制的组成特点,详细阐述了多种进制转换方法,如十六进制转十进制、十进制转十六进制和八进制等,还提及了使用Integer类的相关方法进行转换及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

学习目标:进制转换


学习内容:

        1.十进制: 都是以0-9这九个数字组成,不能以0开头。

        2.二进制: 由0和1两个数字组成。

        3.八进制: 由0-7数字组成,为了区分与其他进制的数字区别,开头都是以0开始。

        4.十六进制:由0-9和A-F组成。为了区分于其他数字的区别,开头都是以0x开始。


进制转换方法1:

        此内包含:16进制转10进制、10进制转10进制、10进制转2进制。

package lanqiao;
import java.util.Scanner;
//进制转换
public class Test {
    public static void main(String[] args) {
        System.out.println("请输入一个数:");
        Scanner sc = new Scanner(System.in);
        String x = sc.nextLine();
        long a = Long.parseLong(x,16); //16进制转10进制
        System.out.println("16进制转10进制:"+a);
        long b = Long.parseLong(x,10); //10进制转10进制
        System.out.println("10进制转10进制:"+b);
        long c = Long.parseLong(x,2); //10进制转2进制
        System.out.println("10进制转2进制:"+c);
    }
}

运行结果示例:


 进制转换方法2

        此内包含:10进制转2进制、10进制转8进制、10进制转16进制。2进制转10进制、8进制转10进制、16进制转10进制。

        使用Integer.parseInt()方法;转换成负数只需要在字符串前加上负号-;大于Integer.MAX_VALUE或小于Integer.MIN_VALUE的转换将会抛出错误。

        使用Integer.toString() 10进制转2,8,16进制;返回类型String。

package lanqiao;
import java.math.BigInteger;
import java.util.Scanner;
//进制转换
public class Test {
    public static void main(String[] args) {
        System.out.println("请输入一个数:");
        Scanner sc = new Scanner(System.in);
        int x = sc.nextInt();
        String a = Integer.toString(x, 2); // 10进制转2进制
        String b = Integer.toString(x, 8);    // 10进制转8进制
        String c = Integer.toString(x, 16);// 10进制转16进制

        BigInteger a1 = new BigInteger("0001", 2); // 2进制转10进制
        BigInteger b1 = new BigInteger("10", 8);    // 8进制转10进制
        BigInteger c1 = new BigInteger("10AC", 16);// 16进制转10进制

        System.out.println("--------------------------------------");
        System.out.println("10 to 2--> "+a);
        System.out.println("10 to 8--> "+b);
        System.out.println("10 to 16-->"+c);

        System.out.println("---------------------------------------");
        System.out.println("2 to 10--> "+a1);
        System.out.println("8 to 10--> "+b1);
        System.out.println("16 to 10-->"+c1);
    }
}

运行结果示例:


进制转换方法3:十六进制转十进制(普通方法)

package lanqiao;
import java.util.Scanner;
//进制转换
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个十六进制数:");
        String string = scanner.nextLine();
        char a[]=string.toCharArray();
        long sum = 0;
        int b = a.length;
        for (int i = 0; i < b; i++) {
            if((int)a[i]-48>9){
                if(a[i]=='A')
                    sum+=10*Math.pow(16,b-i-1);
                else if(a[i]=='B')
                    sum+=11*Math.pow(16,b-i-1);
                else if(a[i]=='C')
                    sum+=12*Math.pow(16,b-i-1);
                else if(a[i]=='D')
                    sum+=13*Math.pow(16,b-i-1);
                else if(a[i]=='E')
                    sum+=14*Math.pow(16,b-i-1);
                else if(a[i]=='F')
                    sum+=15*Math.pow(16,b-i-1);
            }
            else{
                sum+=((int)a[i]-48)*Math.pow(16,b-i-1);
            }
        }
        System.out.println("转换为十进制数为:"+sum);
    }
}

运行结果示例:


 进制转换方法4:十进制转十六进制(普通方法)

package lanqiao;
import java.util.Scanner;
//进制转换
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个十进制数:");
        int a = scanner.nextInt();
        int i = 0;
        char[] c= new char[1000];
        if (a == 0) {
            System.out.println(0);
        }else {
            while(a != 0) {
                int b = a % 16;
                if (b > 9) {
                    c[i] = (char) (b - 10 + 'A');
                }else {
                    c[i] = (char) (b + '0');
                }
                a /= 16;
                i++;
            }
        }
        for (int j = i - 1; j>=0; j--) {
            System.out.print(c[j]);
        }
    }
}

 运行结果示例:


 进制转换方法5:十进制转八进制(普通方法)

package lanqiao;
import java.util.Scanner;
//进制转换
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个十进制数:");
        int n = scanner.nextInt();
        long sum = 0;
        long k = 1;
        while(n != 0){
            sum = sum + (n % 8) * k;
            n /= 8;
            k *= 10;
        }
        System.out.println("转换为八进制数为:"+sum);
    }
}

 运行结果示例:


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值