[英]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);
我不知道你為什么想要這個,你永遠不會輸出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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.