当前位置:   article > 正文

Java 蓝桥杯 基础练习 十六进制转十进制 (进制转换 字符处理 判断)_java 16进制转10进制 负号判断

java 16进制转10进制 负号判断

试题 基础练习 十六进制转十进制

资源限制
时间限制:1.0s 内存限制:512.0MB

问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
方法一:利用java自带的方法

import java.util.*;
public class Main{
	public static void main(String args[]){
		Scanner sc=new Scanner(System.in);
		String n=sc.nextLine();
		System.out.println(Long.parseLong(n,16));
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

方法二:递推

import java.util.HashMap;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String s=sc.next();
		long H[]=new long[16];
		for(int x=0;x<16;x++) 
			H[x]=(long)Math.pow(16,x);
		long sum=0;
		for(int x=s.length()-1;x>=0;x--) {
			if(s.charAt(x)-'0'<10)
				sum+=(H[s.length()-x-1]*(s.charAt(x)-'0'));
			else
				sum+=(H[s.length()-x-1]*((s.charAt(x)-'0')-7));
		}
		System.out.println(sum);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/226752
推荐阅读
相关标签
  

闽ICP备14008679号