蓝桥杯-十六进制转八进制(java)
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯-十六进制转八进制(java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基礎練習 十六進制轉八進制 時間限制:1.0s 內存限制:512.0MB問題描述給定n個十六進制正整數,輸出它們對應的八進制數。輸入格式輸入的第一行為一個正整數n (1<=n<=10)。接下來n行,每行一個由0~9、大寫字母A~F組成的字符串,表示要轉換的十六進制正整數,每個十六進制數長度不超過100000。輸出格式輸出n行,每行為輸入對應的八進制正整數。【注意】輸入的十六進制數不會有前導0,比如012A。輸出的八進制數也不能有前導0。樣例輸入239123ABC樣例輸出714435274【提示】先將十六進制數轉換成某進制數,再由某進制數轉換成八進制。
package com.sihai.basic;import java.util.Scanner;
import java.util.Stack;public class HexToOtc {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();String binStr = hexToOtc(str);}/** C(1100),D(1101),E(1110),F(1111)*/private static String hexToOtc(String str) {String [] hexArr = {"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};String str2 = "";for(int i = 0; i < str.length(); i++){String temp = str.substring(i,i+1);for(int j = 0; j < hexArr.length; j ++){if(Integer.parseInt(temp) == j){str2 += hexArr[j]+",";}}}return str2;}/** * 將數轉為任意進制 * @param num * @param base * @return */ public static String baseString(int num,int base){ if(base > 16){ throw new RuntimeException("進制數超出范圍,base<=16"); } StringBuffer str = new StringBuffer(""); String digths = "0123456789ABCDEF"; Stack<Character> s = new Stack<Character>(); while(num != 0){ s.push(digths.charAt(num%base)); num/=base; } while(!s.isEmpty()){ str.append(s.pop()); } return str.toString(); } /** * 16進制內任意進制轉換 * @param num * @param srcBase * @param destBase * @return */ public static String baseNum(String num,int srcBase,int destBase){ if(srcBase == destBase){ return num; } String digths = "0123456789ABCDEF"; char[] chars = num.toCharArray(); //2,2int len = chars.length; if(destBase != 10){//目標進制不是十進制 先轉化為十進制 num = baseNum(num,srcBase,10); }else{ int n = 0; for(int i = len - 1; i >=0; i--){ n+=digths.indexOf(chars[i])*Math.pow(srcBase, len - i - 1); } return n + ""; } return baseString(Integer.valueOf(num),destBase); } }
總結
以上是生活随笔為你收集整理的蓝桥杯-十六进制转八进制(java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯-回文数(java)
- 下一篇: 蓝桥杯-删除数组零元素(java)