2014-01-07 4 views
5

uint8_t 형식 (부호없는 8 비트 숫자 0-255)에서 작동하는 네이티브 함수 (라이브러리에서 제공)가 있습니다. 자바가 가지고있는 가장 가까운 것은 바이트이다.네이티브 uint8_t (Java 바이트)를 int로 변환합니다.

바이트을 Java에서 사용할 적절한 양수로 변환하려면 어떻게해야합니까? 나는 short 또는 int에 0-255의 숫자를 올바르게 표현하기 위해이 값을 저장해야하지만, 바이트으로 변환하는 방법을 모르겠습니다.

나는 int intValue = byteValue & 0xFF;을 시도했지만 예상치 못한 결과가 나왔다. 그래서 틀린 것 같다. 또는 그것이 맞고 네이티브 라이브러리 기능에서 예상되는 결과를 오해하고 있습니다. 어느 쪽이든 감사 할 것입니다.

+1

당신이 시도한 것은 정확합니다. 네이티브 라이브러리의 결과를 신중하게 확인하고 실제 결과와 예상 결과를 사용하여 질문을 편집해야합니다. –

+0

고마워, 그게 지금 필요한 전부 야. 이 문제를 파악하기 위해 문서를 자세히 읽고 코드를 작성해야합니다. – Tenfour04

+0

안녕하세요 @ Tenfour04, 나는 당신의 동일한 문제가, 당신은 해결책을 생각해 냈어? 어쨌든, 당신의 시도는 나에게 올바른 가치를 돌려주는 것처럼 보입니다. – elect

답변

0

자바에서는 Guava 라이브러리 함수를 사용하여 바이트를 int로 변환하여 부호없는 것으로 처리합니다 (UnsignedBytes.toInt). 따라서 C++ 부호없는 값의 값을 Java의 바이트로 반환하면이를 고칠 수 있습니다.

int로 만들고 java로 int로 반환하려면 완벽해야합니다.

관련 문제