我有一个程序将整数转换为十六进制,但我希望输入为十六进制并转换为十进制。请帮帮....
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);
答案 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变量的限制。