十六进制转换的高效算法

来源:互联网 发布:淘宝网身份认证复核 编辑:程序博客网 时间:2024/06/01 17:13
import java.util.Scanner;public class Text {public static void main(String[] args) {System.out.print("Input a decimal number : ");Scanner input=new Scanner(System.in);int decimalNum=input.nextInt();System.out.println("Hex number is "+decimalToHex(decimalNum)+"H");System.out.print("Input a hex number : ");String hexNum=input.next();System.out.println("Decimal number is "+hexToDecimal(hexNum.toUpperCase()));//toUpperCase()使输入的字母可以不区分大小写}public static String decimalToHex(int decimal) {String hex="";while(decimal!=0) {int value=decimal%16;hex=toHexChar(value)+hex;//不能简单的hex+=toHexChar(value);因为输出的字符串有顺序decimal/=16;}return hex;}public static char toHexChar(int hexValue) {if(hexValue>=10&&hexValue<=15)return (char)(hexValue-10+'A');elsereturn (char)(hexValue+'0');}public static int hexToDecimal(String hex) {int decimal=0;for(int i=0;i<hex.length();i++) {char hexChar=hex.charAt(i);decimal=decimal*16+hexCharToDecimal(hexChar);//高效算法}return decimal;}public static int hexCharToDecimal(char ch) {if(ch>='A'&&ch<='F')return ch-'A'+10;elsereturn ch-'0';}}

阅读全文
0 0