回答
Integer.parseInt(str, 16);
我嘗試過,但創建一個int,而不是一個字節 - 所以對於「1e」我會得到30,而不是0x1e,即使我投到一個字節。 – phpscriptcoder 2009-09-23 16:12:45
如何區分值爲30和0x1e的字節,字節類型是否相同? – 2009-09-23 16:22:01
@phpscriptcoder:不,你會得到1e。試試這個:String roundtrip = Integer.toHexString(Integer.parseInt(str,16)); – erickson 2009-09-23 16:24:38
Byte.parseByte
將通過解析字符串表示返回byte
。
使用與(String, int)
簽名的方法,基數可以被指定爲16,所以可以分析一個字節的十六進制表示:
Byte.parseByte("1e", 16);
危險!此方法將無法解析負值字節值,例如「AD」。請參閱http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6259307。最好使用Integer.parseInt – 2010-05-28 16:31:41
@Dave L.這是不正確的,因爲根據評估者:所討論的方法的行爲完全如指定。使用此方法時,必須使用負號「 - 」指示負值,並且不要通過將高位設置爲1來設置符號位。換句話說,對於基數16,有效字符串的範圍從「-80」(-128)到「7f」(127); 「AD」基座16爲正值173,超出範圍。 – Caner 2011-11-29 11:38:53
@LAS_VEGAS確實Byte.parseByte按指定執行,但如果有人想要將8位值的2個字符的十六進制表示轉換爲相應的字節,如提問者所暗示的,則此方法(如指定和實現的!)將對於高位爲1的值,不要這樣做。 – 2011-11-29 17:37:23
您可以使用Byte.parseByte("a", 16);
但這隻會工作的價值多達127個, 值高那麼將需要轉換爲字節,由於符號/無符號的問題 ,所以我建議把它轉移到一個int,然後將它轉換爲字節
(byte) (Integer.parseInt("ef",16) & 0xff);
:爲什麼&0xff? – 2014-04-09 13:14:16
&0xff用於獲取int的無符號值。 – JCasso 2014-06-11 21:35:39
這應該是公認的答案!它正是我所需要的! – VikingPingvin 2016-07-12 07:47:01
- 1. 將十六進制字符串轉換爲C++中的字節
- 2. 將字符串轉換爲十六進制到十六進制
- 3. JAVA轉換十六進制字符串
- 4. C#字符串爲十六進制,十六進制到字節轉換
- 5. 字符串爲十六進制和十六進制轉換爲字符串
- 6. 將字節數組轉換爲十六進制十進制字符串
- 7. 如何將十六進制字符串轉換爲十進制?
- 8. 將ASCII字符轉換爲十六進制轉義字符串
- 9. 將十六進制字符串轉換爲字符串
- 10. Swift3將字符串值轉換爲十六進制字符串
- 11. 在Java中將十六進制字符串轉換爲ASCII碼
- 12. 在java中將十六進制字符串轉換爲Base32
- 13. 將字符串轉換爲十六進制的字符集?
- 14. 從字節數組轉換爲字符串十六進制c#
- 15. C# - 字節數組轉換爲十六進制字符串
- 16. 從十六進制字符串轉換爲十六進制字符數組
- 17. 如何將十六進制字節轉換爲Java中的Unicode
- 18. 將4字節十六進制轉換爲十進制值
- 19. VB.Net - 將多字節十六進制值轉換爲十進制
- 20. 將多字節字符轉換爲十六進制
- 21. 十進制數字符串轉換爲十六進制的字符串
- 22. 轉換十六進制字符串十六進制值
- 23. 將URL的十六進制數字轉換爲字符串
- 24. 將二進制長字符串轉換爲十六進制c#
- 25. 如何將十六進制字符串轉換爲十六進制?
- 26. 十六進制ASCII字符串轉換
- 27. 將十六進制字符串轉換爲32位二進制字符串
- 28. 將十六進制字符串轉換爲二進制字符串
- 29. 字符串轉換爲從ANSI /十六進制字符串
- 30. Javascript:將十六進制編碼的字符串轉換爲十六進制字節
所以你有什麼問題?如果有的話? – EJP 2013-09-12 10:59:45
這是一個很好的問題。它爲什麼關閉? – Joe 2017-01-13 00:07:29