여기에 많은 hexcode가 있으며 모든 엔티티에 0x를 추가하지 않고 Java로 가져 오려고합니다. 마찬가지로 :16 진수 코드를 Java에서 바이트 []로 사용하려면 자동 변환하는 방법?
byte[] test = {0x01, 0x02, 0xFF, 0xAB};
그리고 나는 꽤 오랫동안 많은 hexcodes 있습니다
0102FFAB을하고 난 다음을 수행해야합니다. 이것을 자동으로 만들 수있는 방법이 있습니까?
여기에 많은 hexcode가 있으며 모든 엔티티에 0x를 추가하지 않고 Java로 가져 오려고합니다. 마찬가지로 :16 진수 코드를 Java에서 바이트 []로 사용하려면 자동 변환하는 방법?
byte[] test = {0x01, 0x02, 0xFF, 0xAB};
그리고 나는 꽤 오랫동안 많은 hexcodes 있습니다
0102FFAB을하고 난 다음을 수행해야합니다. 이것을 자동으로 만들 수있는 방법이 있습니까?
당신이 시도하고 문자열로 진수 코드를 넣어 다음과 유사한 문자열, 반복 수 :이 심지어 길이 문자열이 필요하고 아주 신속하고 더러운 솔루션입니다
String input = "0102FFAB";
byte[] bytes = new byte[input.length()/2];
for(int i = 0; i < input.length(); i+=2)
{
bytes[i/2] = Integer.decode("0x" + input.substring(i, i + 2) ).byteValue();
}
하는 것으로. 그러나 아직 시작해야합니다.
그것은 빠르고 빠르지 만 그것을 위해 작동합니다 :-) – Andre
BigInteger를 사용하여 긴 16 진수 문자열을로드 할 수 있습니다.
public static void main(String[] args) {
String hex = "c33b2cfca154c3a3362acfbde34782af31afb606f6806313cc0df40928662edd3ef1d630ab1b75639154d71ed490a36e5f51f6c9d270c4062e8266ad1608bdc496a70f6696fa6e7cd7078c6674188e8a49ecba71fad049a3d483ccac45d27aedfbb31d82adb8135238b858143492b1cbda2e854e735909256365a270095fc";
byte[] bytes2 = hexToBytes(hex);
for(byte b: bytes2)
System.out.printf("%02x", b & 0xFF);
}
public static byte[] hexToBytes(String hex) {
// add a 10 to the start to avoid sign issues, or an odd number of characters.
BigInteger bi2 = new BigInteger("10" +hex, 16);
byte[] bytes2 = bi2.toByteArray();
byte[] bytes = new byte[bytes2.length-1];
System.arraycopy(bytes2, 1, bytes, 0, bytes.length);
return bytes;
}
인쇄
0c33b2cfca154c3a3362acfbde34782af31afb606f6806313cc0df40928662edd3ef1d630ab1b75639154d71ed490a36e5f51f6c9d270c4062e8266ad1608bdc496a70f6696fa6e7cd7078c6674188e8a49ecba71fad049a3d483ccac45d27aedfbb31d82adb8135238b858143492b1cbda2e854e735909256365a270095fc
참고 : 처음에 하나 개의 16 진수 값 짧은 있다는 것을 그 가능성을 처리합니다.
16 진수 코드 인'String'은 어떤 형식입니까? – Thomas
아니 그냥 파일에 일반 텍스트 ....하지만 난 그 파일에서 그들을 읽고 싶지 않아, 그냥 자바 프로그램에 하드 코드 – Andre