Java-NowCoder-进制转换

来源:互联网 发布:dell网络驱动如何安装 编辑:程序博客网 时间:2024/05/17 00:12

题目描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

输入例子:

0xA

输出例子:

10


import java.util.Scanner;//写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )  例如:输入0xA 输出:10public class NC_009_进制转换 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while(sc.hasNext()){String str = sc.nextLine();String subStr = str.substring(2, str.length());//十六进制数的前两位是标志位不参与运算int result = 0;//char[] numChar = new char[subStr.length()];//char[] numChar = subStr.toCharArray();for(int i = 0; i < numChar.length; i++){if(numChar[i] >= 48 && numChar[i] <= 57){//数字//System.out.println(numChar.length);result = result + (numChar[i] - 48) * (int)Math.pow(16, numChar.length - i -1);}if((numChar[i] >= 65 && numChar[i] <= 70)){//a,b,c,d,e,fresult = result + (numChar[i] - 55) * (int)Math.pow(16, numChar.length - i -1);}if(numChar[i] >= 97 && numChar[i] <=102){//A,B,C,D,E,Fresult = result + (numChar[i] - 87) * (int)Math.pow(16, numChar.length - i -1);}}System.out.println(result);}}}


0 0
原创粉丝点击