2011-12-08 3 views
3

16 진수 문자열이 14 바이트입니다. a55a0b05000000000022366420ec. javax.xml.bind.DatatypeConverter.parseHexBinary(String s)을 사용하여 14 바이트의 배열을 가져옵니다. 예를 들어 0xEC = 236과 같은 unsigend 바이트입니다.16 진수 문자열을 Java의 부호없는 바이트 배열로 변환합니다.

그러나 나는 이것을 다음과 같이 바이트와 비교하고 싶습니다. if(byteArray[13] == 0xec) 235가 부호있는 바이트보다 크기 때문에이 if 문은 실패합니다. 자바에서 이것을 어떻게 해결할 수 있을까요? Thx!

+0

부호없는 바이트로 처리하고 비교가 동일합니다. –

답변

9

정수로 if(byteArray[13] == (byte)0xec)

2

당신은 바이트를 홍보 할 수보십시오 :

if((byteArray[13] & 0xff) == 0xec) 
0

을 자바 (이어야 프리미티브)을 지원하지 않기 때문에 서명되지 않은 데이터 형식을, 당신은 당신의 데이터로 INT를 사용하여 보라 문자열을 구문 분석 입력 있습니다 .. arrayOfValues

 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++; 
     } 

일을 ...

관련 문제