[英]Convert Hex String to unsigned Byte Array in Java
我得到14个字节的十六进制字符串,例如a55a0b05000000000022366420ec
。 我使用javax.xml.bind.DatatypeConverter.parseHexBinary(String s)
来获取14个字节的数组。 不幸的是,这些是非原始字节,例如最后一个0xEC
= 236。
但我想将它们与这样的字节进行比较: if(byteArray[13] == 0xec)
由于235大于有符号字节,因此if语句将失败。 知道如何在java中解决这个问题吗? 谢谢!
尝试if(byteArray[13] == (byte)0xec)
您可以将字节提升为整数:
if((byteArray[13] & 0xff) == 0xec)
由于java不支持(至少使用基元)任何无符号数据类型,因此您应该使用int作为数据类型来解析字符串。
String str = "a55a0b05000000000022366420ec";
int[] arrayOfValues = new int[str.length() / 2];
int counter = 0;
for (int i = 0; i < str.length(); i += 2) {
String s = str.substring(i, i + 2);
arrayOfValues[counter] = Integer.parseInt(s, 16);
counter++;
}
使用arrayOfValues
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.