1. 程式人生 > >藍橋杯演算法題庫 進位制轉換_16轉10進位制

藍橋杯演算法題庫 進位制轉換_16轉10進位制

藍橋杯演算法題庫 16轉10進位制

題目

問題描述
*問題描述   從鍵盤輸入一個不超過8位的正的十六進位制數字符串,將它轉換為正的十進位制數後輸出。
*注:十六進位制數中的10~15分別用大寫的英文字母A、B、C、D、E、F表示。
樣例輸入 FFFF 樣例輸出 65535

解題思路

1、將輸入的16進位制數用字元陣列儲存每一位;
2、十六進位制數按權展開、相加即得十進位制數。具體見圖在這裡插入圖片描述

//java程式碼

	public static void main(String[] args) {
		// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); char[] c = sc.next().toCharArray(); int[] n = new int[c.length]; long sum = 0; for (int i = c.length - 1; i >= 0; i--) { if (c[i] - '9' > 0) { n[i] = c[i] - 'A' + 10; } else { n[i] = c[i] - '0'; } } //呼叫math.pow函式計算次方 for (int i =
n.length - 1; i >= 0; i--) { sum = sum + (long) (n[i] * Math.pow(16, n.length - 1 - i)); } System.out.println(sum); }