Java一个程序,它接受一个数字的十六进制表示,并输出该数字的十进制表示

时间:2014-02-22 06:41:04

标签: java

我有一个程序将整数转换为十六进制,但我希望输入为十六进制并转换为十进制。请帮帮....

 int m; String Hdec="";
   while(m>0){
int rem;
rem=m%16;
if(rem>=0&rem<=9)
Hdec=rem+Hdec;
else if(rem==10)
    Hdec="A"+Hdec;
else if(rem==11)
    Hdec="B"+Hdec;
else if(rem==12)
    Hdec="C"+Hdec;
else if(rem==13)
            Hdec="D"+Hdec;
else if(rem==14)
    Hdec="D"+Hdec;
else if(rem==15)
    Hdec="D"+Hdec;
m=m/16;
     }
     sop(Hdec);

2 个答案:

答案 0 :(得分:1)

有人已经实现了这个,你可以使用例如

Integer.parseInt("1a", 16)

并将得到结果26。

答案 1 :(得分:1)

尝试这种方法:

import java.math.BigInteger;
import java.util.Scanner;

public class HexDec {

private static final int DECIMAL = 10;
private static final int HEXADECIMAL = 16;

public HexDec() {
    BigInteger hexNumber = new BigInteger(fetchInput(), HEXADECIMAL);

    System.out.println("Number in Decimal: " + hexNumber.toString(DECIMAL));
}

private String fetchInput() {
    Scanner scanner = new Scanner(System.in);

    System.out.print("Enter a hexadecimal number: ");
    String input = scanner.next();
    scanner.close();

    return input;
}

public static void main(String[] args) {
    new HexDec();
}
}

上述程序甚至可以采用大十六进制整数并打印十进制整数表示,即使它超过了int和long变量的限制。