1. 程式人生 > >Java程式設計題:將一個十六進位制的字串轉換成一個十進位制的整數

Java程式設計題:將一個十六進位制的字串轉換成一個十進位制的整數

思路:

1.將字串轉換成一個一個的字元

2.將字元轉換成十六進位制的數字

3.計算出結果

package test;

public class Test {

	public static void main(String[] args) {
		
		String str = "13abf";
		int len = str.length();
		int sum = 0;
		for(int i=0;i<len;i++){
			/*
			 * charAt 官方文件上是說返回指定索引處的char值,
			 * 實際上就是將字串轉換成一個一個的字元
			 */
			char c = str.charAt(len-1-i);
			/*
			 * digit 官方文件上是說返回使用指定基數的字元c的數值,
			 * 實際上和Integer.parseInt(c,radix)是一個道理,
			 * 就是將你指定進位制的這個字元c轉換成一個整數
			 */
			int n = Character.digit(c,16);
			/*
			 * 這就相當於1*16^4+3*16^3+...
			 * <<:高位去除,地位補0
			 * a<<b在資料不溢位的情況下相當於a*2^b
			 */
			sum += n * (1<<(4*i));	
		}
		System.out.println(sum);
		//利用Integer類的靜態方法可以直接得到結果
		//System.out.println(Integer.parseInt(str, 16));
		//System.out.println(Integer.valueOf(str, 16));
	}
}