从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
 * 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
 * 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
 */
public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
		   String s1="";
		   String s2="";
		   long sum=0; //定义long型变量
		   String s = reader.readLine();
		   //char []ArrOld = s.toCharArray();不需要转换
                   s1=s.toUpperCase();//将s中的小写字母转换为大写字母
	
		  /*  int i=0;
		  while(ArrOld[i]!='\0') 	  //java 的字符数组没有结束符!!!!!!!
		   {
			   char []ArrNew = new char[ArrOld.length];
			   ArrNew[i]=(char)(ArrOld[i]-26);
			   System.out.println(ArrNew);
			   s=new String(ArrNew);
			   i++;
		   }*/
		    s2=hexToBinary(s1);
		    
		    for(int i=0;i
                //十六进制转换为二进制算法
     public static String hexToBinary(String hexNum){
	        char[] chs = {'0','1'};
	        String str = new String("0123456789ABCDEF");
	        char[] charArray = hexNum.toCharArray();
	        int pos = charArray.length*4;
	        char[] binaryArray = new char[pos];
	        for (int i = charArray.length - 1; i >=0; i--) {
	            int temp = str.indexOf(charArray[i]);
	            for(int j=0;j<4;j++){
	                binaryArray[--pos] = chs[temp & 1];
	                temp = temp >>> 1;
	            }
	        }
	        return new String(binaryArray);
	    }

}

你可能感兴趣的:(从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。)