我正在寻找一种方法将整数值(如22,32,42)转换为相应的伪十六进制值(如0x22,0x32,0x42)。 任何人都可以解决这类问题吗?
答案 0 :(得分:1)
如果您只想附加0x:"0x"+value
。如果要将int转换为该十六进制值的适当数字
String temp = Integer.toString(value);
int asHex = Integer.valueOf(temp, 16);
答案 1 :(得分:0)
我不知道你为什么想要这个,看起来很奇怪你曾经0xA
通过0xF
输出(因为它不能输入)但无论如何,我希望它至少可以帮助你发现你的方法中可能存在的缺陷:
public static int fakeHex(int i) {
int result = 0;
int base = 1;
while (i > 0) {
int decimalDigit = i % 10;
result += base * decimalDigit;
i /= 10;
base *= 16;
}
return result;
}
测试用例:
@Test
public void fake_hex_test() {
assertEquals(0x0, fakeHex(0));
assertEquals(0x9, fakeHex(9));
assertEquals(0x22, fakeHex(22));
assertEquals(0x32, fakeHex(32));
assertEquals(0x42, fakeHex(42));
assertEquals(0x123, fakeHex(123));
}