每日一题蓝桥:2489_进制

1.题目

2.题解

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("2021ABCD", 16);
		    System.out.println(n);
    }
}

3.知识拓展:进制转换

3.1.直接用api,便捷;

/**
	 * x进制数 -> 十进制数
	 * @param str : 表示数据字符串
	 * @param number :表示str字符串是x进制数
	 */
	static void f1(String str , int number) { 
		//Integer.parseInt("1000",2)  =>  (1000)2 = (8)10
		int n = Integer.parseInt(str, number);
		System.out.println(n);
	}
	
	
	/**
	  *   十进制数 -> 二进制数
	 * @param n :表示十进制数
	 */
	static void f2(int n) {
		//Integer.toBinaryString(8) => (8)10 = (1000)2
		String str = Integer.toBinaryString(n);
		System.out.println(str);
	}

3.2用原理解

3.2.1x.进制数 -> 十进制数

3.2.1.1.例题

3.2.1.2.代码展示

/**
	 * x进制数 -> 十进制数
	 * @param str : 表示数据字符串
	 * @param number :表示str字符串是x进制数
	 */
	static void f3(String str,int number) {
		//1.把字符串转成数组
		char ch[] = str.toCharArray();
		//2.模拟计算
		int sum = 0;//初始化十进制数值
		int j = 0;//控制次方数
		for (int i = ch.length -1; i >= 0; i--) {
			int t = ch[i] ;
			if (ch[i]>='0'&&ch[i]<='9') {
				t -= '0'; 
			}else if (ch[i]>='A'&&ch[i]<='Z') {
				t = t -'A'+10;
			}
			sum += t*Math.pow(number, j++);
		}
		System.out.println(sum);
	}
 3.2.2.十进制数 -> x进制数

3.2.2.1.例题

3.2.2.2.代码展示

/**
	 *  十进制数 -> x进制数
	 * @param n : 表示十进制的数
	 * @param number : 要转换成的进制数
	 */
	static void f4(int n, int number) {
		//1.定义一个动态字符串
		StringBuilder sb = new StringBuilder();
		//2.判断n是否为0
		if (n == 0) sb.append("0");
		else {
			//3.模拟原理计算
			while (n > 0) {
				int t = n % number;
				if (t >= 10) sb.append((char) (t + 'A' - 10));
				else sb.append((char) (t + '0'));
				n /= number;
			}
		}
		//4.倒序输出
		System.out.println(sb.reverse());
	}

4.总结

进制之间的转换,在蓝桥杯中还是挺常考的。不知道进制之间转换的小伙伴,可以跟着知识加油站学习一下。

5.期望

如果您对我的写作有任何疑虑,或是您认为还有改进的空间,我很愿意提供帮助并指出问题所在。同时,如果您有其他好的想法或建议,也欢迎分享,我们可以相互学习和启发。

6.有偿辅导公告

本人高分通过软件设计师考试,如果有正在备考软设的小伙伴,需要真题资料辅导服务,请私信我,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值