回答
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