在java中将整数转换为字节

时间:2017-02-11 15:22:29

标签: java

我正在寻找一种方法将整数值(如22,32,42)转换为相应的伪十六进制值(如0x22,0x32,0x42)。 任何人都可以解决这类问题吗?

2 个答案:

答案 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));
}