簡體   English   中英

在java中將整數轉換為字節

[英]Convert integer to byte in java

我正在尋找一種將整數值(如 22、32、42)轉換為相應的假十六進制值(如 0x22、0x32、0x42)的方法。 任何人都可以解決此類問題嗎?

如果你只想要 0x 附加: "0x"+value 如果要將 int 轉換為該十六進制值的適當數字

String temp = Integer.toString(value);
int asHex = Integer.valueOf(temp, 16);

我不知道你為什么想要這個,你永遠不會輸出0xA0xF似乎很奇怪(因為它不能在輸入中)但無論如何它在這里,我希望它至少可以幫助你發現可能的缺陷在你的方法中:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM