赞
踩
问题描述
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535
BASIC-11 Programming
方法一
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO 自动生成的方法存根 Scanner sc=new Scanner(System.in); String str=sc.next(); char[] ch= {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; long sum=0; for(int i=0;i<str.length();i++) { for(int j=0;j<ch.length;j++) //判断与数组ch对应值 if(str.charAt(i)==ch[j]) { //每位乘十六对应位上的次方 sum+=(long)Math.pow(16,str.length()-i-1)*j; } } //输出 System.out.println(sum); } }
方法二
import java.math.BigInteger; import java.util.Scanner; public class Main2 { public static void main(String args[]) { Scanner input = new Scanner(System.in); //定义两个任意大的整数 BigInteger bi = null; String enter = null; //接收用户输入的值 enter = input.next(); //以十六进制存储到enter中 bi = new BigInteger(enter,16); //bi转10进制show String show = bi.toString(10); //输出 System.out.println(show); } }
方法三
import java.util.Scanner;
public class Main3{
public static void main(String args[]) {
Scanner input=new Scanner(System.in);
//接收用户输入的值
String enter = input.next();
//直接转化为10进制串
String dec=Long.valueOf(enter,16).toString();
//输出
System.out.println(dec);
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。