Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将十六进制字符串转换为无符号字节数组_Java_Hex - Fatal编程技术网

在Java中将十六进制字符串转换为无符号字节数组

在Java中将十六进制字符串转换为无符号字节数组,java,hex,Java,Hex,我得到14字节的十六进制字符串,例如a55a0b05000000000022366420ec。 我使用javax.xml.bind.DatatypeConverter.parseHexBinary(字符串s)获得一个14字节的数组。 不幸的是,这些是非原始字节,比如最后一个0xEC=236 但我想将它们与如下字节进行比较: if(byteArray[13]==0xec) 由于235大于有符号字节,因此该if语句将失败。 你知道如何用java解决这个问题吗? 谢谢 尝试如果(byteArray[1

我得到14字节的十六进制字符串,例如a55a0b05000000000022366420ec。 我使用
javax.xml.bind.DatatypeConverter.parseHexBinary(字符串s)
获得一个14字节的数组。 不幸的是,这些是非原始字节,比如最后一个
0xEC
=236

但我想将它们与如下字节进行比较:
if(byteArray[13]==0xec)
由于235大于有符号字节,因此该if语句将失败。 你知道如何用java解决这个问题吗?
谢谢

尝试
如果(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++;
        }
String str=“a55a0b05000000000022366420ec”;
int[]arrayOfValues=新的int[str.length()/2];
int计数器=0;
对于(int i=0;i

使用
arrayOfValues

将其视为无符号字节,比较结果相同。