寫出一個程序,接受一個十六進制的數,輸出該數值的十進制表示。(多組同時輸入 )


package com.pagination.plus.workTrain;


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

public class Main0 {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\\JavaData\\tmp/input.txt")));
        //BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String read = null;
        //String[] hexTable = {"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};
        String hexTable = "0123456789ABCDEF";
        while ((read=bufferedReader.readLine())!=null){
            String hexNum = read.substring(2).toUpperCase();
            int num=0;
            for(int j=0, i=hexNum.length()-1;i>=0;i--,j++){
                num += hexTable.indexOf(hexNum.charAt(j)) * (int)Math.pow(16,i);
            }
            System.out.println(num);
      		//System.out.println(Integer.parseInt(hexNum,16));
        }
    }


}

如果對api熟悉,直接使用java提供的可以一行搞定
這里需要記下parse的用法,Integer,Long,Double等包裝類都提供了相應的方法,如果不涉及其他進制的轉換,只是字符串樣式的十進制數,直接使用valueOf就OK。
static Integer valueOf(String s)
Returns an Integer object holding the value of the specified String.

System.out.println(Integer.parseInt(hexNum,16));

注意:如果使用了parse,一定要注意轉換數據的范圍,
Integer.parseInt需要注意的最小值為
MIN_VALUE = 0x80000000;(負數在計算機中都是保存的補碼)
最大值為
MAX_VALUE = 0x7fffffff;
一定要保證在這個數據間才行,否則會出現java.lang.NumberFormatException


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM