2 바이트 배열 (byte [2])을 java의 정수 값으로 변환해야합니다. 어떻게해야합니까?Java : 바이트를 정수로 변환합니다.
답변
이에 대한 ByteBuffer
를 사용할 수 있습니다
ByteBuffer buffer = ByteBuffer.wrap(myArray);
buffer.order(ByteOrder.LITTLE_ENDIAN); // if you want little-endian
int result = buffer.getShort();
도 Convert 4 bytes to int를 참조하십시오.
글쎄, 각 바이트는 -128.1.127 범위의 정수이므로 한 쌍의 정수를 단일 정수로 매핑하는 방법이 필요합니다. 바이트 쌍으로 인코딩 한 내용에 따라 여러 가지 방법이 있습니다. 가장 일반적인 방법은 16 비트 부호있는 정수를 바이트 쌍으로 저장하는 것입니다. 바이트의 값이 음수가 될 수 있다는 뜻,
자바에서(byte_array[1]<<8) + (byte_array[0] & 0xff)
, 바이트가 서명 :
(byte_array[0]<<8) + (byte_array[1] & 0xff)
또는 작은 엔디안 : 정수로 그것을 다시 변환하면 빅 엔디안 형태로 보관 여부에 따라 달라집니다 , 그렇게되면 @ MattBall의 독창적 인 해결책은 작동하지 않습니다. 바이트 어레이의 바이너리 형식이 같은 경우
예를 들어 :
1,000 1,101 1,000 1,101 다음에 myArray [0]
1000 1101
이고 myArray의 [1]1000 1101
이며1000 1101
바이트의 십진수 값-115
대신 141 (= 2^7 + 2^3 + 2^2 + 2^0) 우리가 사용하는 경우
int result = (myArray[0] << 8) + myArray[1]
이 값은
-16191
으로 잘못되었습니다.의 잘못은 우리가 정수로 2 바이트의 배열을 해석 할 때, 모든 바이트가 서명되지 않은, 그래서 번역 할 때, 우리는 부호없는 정수에 서명 바이트지도를해야한다는 것입니다 이유 :
을
((myArray[0] & 0xff) << 8) + (myArray[1] & 0xff)
결과가
36237
인 경우 계산기 또는 ByteBuffer를 사용하여 올바른지 (예, 올바른지) 확인하십시오. 당신은 구아바 라이브러리를 사용할 수 있는지
많은 설명을 주셔서 감사합니다 :) – shadygoneinsane
또한 :
Ints.fromByteArray(0, 0, myArray[1], myArray[0]);
을이 프로젝트의 많은 어쨌든 그것을 사용하기 때문에 언급 할 가치가 있었다.
은 간단하게이 작업을 수행 :
return new BigInteger(byte[] yourByteArray).intValue();
등 부호 변환 대 서명에 대해 걱정할 필요가 없습니다 블루투스 명령 변환에 큰 작동합니다.
- 1. 2 바이트를 정수로 읽어들입니까?
- 2. Java는 float를 정수로 변환합니다.
- 3. NSString을 정수로 변환합니다.
- 4. 포인터 문자열을 정수로 변환합니다.
- 5. 와이어 값을 Verilog의 정수로 변환합니다.
- 6. iphone - 부동 소수점을 정수로 변환합니다.
- 7. 루비 - 파일에서 바이트를 읽고 정수로 변환
- 8. 메이크업 바이트를 정수로 가져 오는 방법은 무엇입니까?
- 9. 정수로 나눈 Java
- 10. ICU4C 바이트를 Java 문자로 변환
- 11. java/android에서 2 바이트를 병합합니다.
- 12. US-ASCII로 인코딩 된 바이트를 정수로 변환하고 다시
- 13. .wav 파일 읽기 : 리틀 엔디안과 빅 엔디안을 정수로 변환합니다.
- 14. 엠바 카데로 ER/Studio 실제 모델이 시리얼을 정수로 변환합니다.
- 15. 레이블에서 정수로 정수로 변환
- 16. Java SocketChannel 내 바이트를 먹는 중
- 17. Java 무작위 정수로 다차원 배열을 초기화
- 18. Java에서 파일 바이트를 읽는 방법?
- 19. 바이트를 PHP로 GB로 변환
- 20. Windows OS에서 Java OS로 파일을 변환합니다.
- 21. 바이트를 읽음
- 22. 정수로 "반올림"
- 23. .Jar를 .Dmg로 변환합니다.
- 24. 하나를 8 바이트로 변환합니다. invb.net
- 25. 자바 메서드를 C#으로 변환 : 바이트를 비트 시프트 연산자로 정수로 변환
- 26. Java FileInputStream에서 바이트를 읽을 때 -1을 0xff와 어떻게 구별합니까?
- 27. C# 문자열을 int로 변환합니다 (반올림 함)
- 28. Java 프로그램 언어의 정수로 IPv6 주소를 변환하는 방법을
- 29. blazeds는 BigDecimal을 문자열로 변환합니다.
- 30. .pk8 파일을 .key 파일로 변환합니다.
이 질문은 몇 가지 설명을 사용할 수 있습니다. 지금 서 있기 때문에 어떤 대답을 선택했는지 알 수 있습니다. –