蓝桥杯——基础训练之十六进制转十进制

package _2_base;

import java.util.Scanner;

public class _11_16To10 {
	public static void main(String[] args) {
		jinzhi2();
	}
	/*
//	蓝桥杯官网上提交只有75分可能可能可能是因为String string或者int sum的长度不够!!
	public static void jinzhi() {
		Scanner sc=new Scanner(System.in);
		String string=sc.next();
		int sum=0;
		for (int i = 0; i < string.length(); i++) {
			if(string.charAt(i)=='A'||string.charAt(i)=='B'||string.charAt(i)=='C'||string.charAt(i)=='D'||string.charAt(i)=='E'||string.charAt(i)=='F') {
				sum+=(string.charAt(i)-7-'0')*Math.pow(16, string.length()-i-1);
			}else if(string.charAt(i)=='a'||string.charAt(i)=='b'||string.charAt(i)=='c'||string.charAt(i)=='d'||string.charAt(i)=='e'||string.charAt(i)=='f') {
				sum+=(string.charAt(i)-39-'0')*Math.pow(16, string.length()-i-1);
			}else {
				sum+=(string.charAt(i)-'0')*Math.pow(16, (string.length()-i-1));
			}
		}
		System.out.println(sum);
	}
	*/
	public static void jinzhi2() {
		Scanner sc=new Scanner(System.in);
		String string=sc.next();
		System.out.println(Long.valueOf(string, 16));
//		上一句换成下面一行语句也行!
//		System.out.println(Long.parseLong(string, 16));
		

	}
}

总结:

收获1:更进一步地了解了Integer.parseInt(String string, int i)、Integer.valueOf(String string, int i)、
Long.parseLong(String string, int i)、Long.valueOf(String string, int i)方法的意义:(Long存储的数据更大)
即:将i进制的string转换成十进制

收获2:valueOf与parseInt方法比较:
1.parseInt返回的是基本类型int,而valueOf返回的是对象
2.valueOf的内部其实就是调用了parseInt方法。

知识:
	System.out.println(Integer.parseInt("101010", 2));
	System.out.println(Long.parseLong("101010", 2));
	
	但是这个字符串可能超出Integer的范围了
	System.out.println(Integer.parseInt("123456789ABCDEF", 16));
	
	于是乎,就有了Long这个类
	System.out.println(Long.parseLong("123456789ABCDEF", 16));

发布了27 篇原创文章 · 获赞 2 · 访问量 943

猜你喜欢

转载自blog.csdn.net/wcy8733996wcy/article/details/104290331
今日推荐