回答
String.format("%02X", value);
如果使用X
代替x
as suggested by aristar,那麼你就需要使用.toUpperCase()
。
Integer.toHexString(42);
的Javadoc:http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toHexString(int)
注意,這可能會給你超過2個位數,但是! (一個整數是4個字節,所以你可能會得到8個字符。)
這裏有一點竅門讓你的填充,只要你絕對相信你只處理單字節值(255或更少):
Integer.toHexString(0x100 | 42).substring(1)
在Left padding integers (non-decimal format) with zeros in Java有更多(更好的)解決方案。
不錯的零填充黑客:) – Grodriguez 2014-05-09 07:45:54
你可以使用相同的技術來獲取更大的值。如果你想填充高達2個字節的值,你可以做Integer.toHexString(0x10000 | value).substring(1)。對於N十六進制數字,在「1」之後附加N 0。當然,你的十六進制值不能超過N位。 – user823981 2015-09-16 22:55:57
使用Integer.toHexString()
。如果你只結束一位數字,不要忘記填寫一個前導零。如果你的整數大於255,你會得到2位以上的數字。
StringBuilder sb = new StringBuilder();
sb.append(Integer.toHexString(myInt));
if (sb.length() < 2) {
sb.insert(0, '0'); // pad with leading zero if needed
}
String hex = sb.toString();
是否使用StringBuilder實際上是一種改進? http://pastebin.com/KyS06JMz – 2013-11-02 10:15:59
如果你只需要打印出來試試這個:
for(int a = 0; a < 255; a++){
if(a % 16 == 0){
System.out.println();
}
System.out.printf("%02x ", a);
}
String.format("%02X", (0xFF & value));
有人可以解釋爲什麼這是做一個按位和與0xFF?這就是爲什麼SO上的答案不僅僅是代碼 – 2013-07-26 11:48:40
0xFF&(byte)的值只是將有符號的字節轉換爲無符號的。 (int)-1 = 0xFFFFFFFF,(int)( - 1&0xFf)= 0xFF – aristar 2013-08-23 18:26:57
在這種情況下,由於「%02X」格式的原因,不需要按位和0xFF。 – 2015-05-05 14:34:17
- 1. 整數轉換爲十六進制Java
- 2. 十六進制整數
- 3. Java - 十六進制字符串表示爲整數十六進制
- 4. 在Arduino上將整數/十進制轉換爲十六進制?
- 5. 十六進制字符串爲整數
- 6. php,轉換爲十六進制整數
- 7. 十六進制爲整數(4字節)
- 8. 十六進制字符串到十六進制整數
- 9. 在Java中將十六進制數轉換爲十進制數(Android)
- 10. 基數爲十六進制
- 11. 在delphi 7中將整數轉換爲十六進制數
- 12. 在Java十六進制數據類型
- 13. Python - 從十六進制整數轉換爲十六進制字符串
- 14. 十六進制()參數不能轉換爲十六進制
- 15. 如何在Java中以十六進制解析負長整數
- 16. 如何將11位十六進制數轉換爲Java中唯一的11位十進制數?
- 17. Codekata將數字從十六進制轉換爲十進制整數表示
- 18. PHP十六進制到整數
- 19. 十六進制到整數轉換
- 20. 整數存儲 - 十六進制/八
- 21. 十六進制整數溢出
- 22. 轉換十六進制數長整型
- 23. 非法整數字符十六進制
- 24. 比較兩個大的十六進制數在Java中
- 25. 兩個十六進制數字之間的數字 - Java
- 26. 解析64位十六進制數
- 27. Perl 64位十六進制函數
- 28. 生成128位十六進制數
- 29. 將64位無符號整數(以十六進制字符串形式)轉換爲java中的十進制
- 30. 十進制按位轉換爲整數
你需要打印嗎?你需要把它變成一個字符串? – 2011-12-31 17:34:59
我將寫入文件作爲兩位數十六進制 – 2011-12-31 17:36:02
你至少檢查了整數javadoc?你打算如何將12345656轉換爲2位十六進制值? – 2011-12-31 17:36:25