我想把一个整数转换成另一个整数,使得它以十六进制的形式打印出来与原始整数相同。
例如:
将20转换为32(即0x20)
将54转换为84(即0x54)
最简单的方法是使用Integer.toHexString(int)
。
public static int convert(int n) {
return Integer.valueOf(String.valueOf(n), 16);
}
public static void main(String[] args) {
System.out.println(convert(20)); // 32
System.out.println(convert(54)); // 84
}
也就是说,将原始数字视为十六进制,并转换为十进制。
将整数转换为十六进制的另一种方法。
String hex = String.format("%X", int);
您可以将大写字母X
更改为小写字母x
。
示例:
String.format("%X", 31)
的结果为 1F
。
String.format("%X", 32)
的结果为 20
。
int orig = 20;
int res = Integer.parseInt(""+orig, 16);
public static int solve(int x){
int y=0;
int i=0;
while (x>0){
y+=(x%10)*Math.pow(16,i);
x/=10;
i++;
}
return y;
}
public static void main(String args[]){
System.out.println(solve(20));
System.out.println(solve(54));
}
String input = "20";
int output = Integer.parseInt(input, 16); // 32
public static void hexa(int num) {
int m = 0;
if( (m = num >>> 4) != 0 ) {
hexa( m );
}
System.out.print((char)((m=num & 0x0F)+(m<10 ? 48 : 55)));
}
就这样简单地做:
public static int specialNum(num){
return Integer.parseInt( Integer.toString(num) ,16)
}
它应该将任何特殊的十进制整数转换为其十六进制对应项。