进制转换-

本文介绍了进制的基本概念,包括二进制、八进制、十进制和十六进制的运算规则,并提供了Java代码示例,展示了如何进行进制转换和计算1到10000所需二进制位数。

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

1、进制的概念

常用的进制:二进制、八进制、十进制

数制的表示方法:

数字下标法,对于不同进制的数可以将它们加上括号再用数字下标表示进制

 

常见进制的运算规则

二进制:逢二进一

基数为2,数值部分用两个不同的数字0、1来表示

十进制:逢十进一

基数为10,数值部分用0、1、2、3、4、5、6、7、8、9来表示

十六进制:逢十六进一

基数为16,有十六种数字符号,除了在十进制中的0至9外,还另外用6个英文字母A,B,C,D,E,F来表示十进制数的10至15

2、转换模板

十进制转n进制模板

    public static String con(int x,int n){
        StringBuilder str1 = new StringBuilder();
        while (x>0){
            //取每一位的值
            str1.append(x % n);
            x /= n;
        }
        //返回反转字符串
        return str1.reverse().toString();
    }

例题---二进制表示

https://www.lanqiao.cn/problems/582/learning/

        小明要用二进制来表示1到10000的所有整数,要求不同的整数用不同的二进制表示,请问,为了表示1到10000的所有整数,至少需要多少个二进制位?

import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int res = 0,sum = 0;
        for (int i = 0; ; i++) {
            sum += Math.pow(2,i);
            if(sum >= 10000){
                res = i+1;
                break;
            }
        }
        System.out.println(res);
        sc.close();
    }
}

例题---进制

https://www.lanqiao.cn/problems/2489/learning/

        请问十六进制数2021ABCD对应的十进制是多少?

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String str = "2021ABCD";
        int k = 0;
        long sum = 0;
        for (int i = str.length() - 1; i >= 0; i--,k++) {
            char c = str.charAt(i);
            if (c>='A' && c <= 'D'){
                int res = c - 'A' + 10;
                sum += (long)res * Math.pow(16,k);
            }else{
                int res = c - '0';
                sum += (long)res*Math.pow(16,k);
            }
        }
        System.out.println(sum);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

那只狸花猫吖

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

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

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

打赏作者

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

抵扣说明:

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

余额充值