ByteBuffer API를 사용하여 개체를 바이트로 변환하고 있습니다. 의 ByteBuffer API를 사용ByteBuffer API가 잘못된 정수 값을 제공합니다.
public class Obj{
int a; // size 1 byte
int b; // size 4 bytes
int c; // size 4 bytes
}
다음과 같이 객체의 클래스이며, I는 I (100)로 B의 값을 설정하지만에서 바이트 배열을 변환 할 때 길이 4까지 1 오프셋
ByteBuffer bbf = ByteBuffer.allocate(9);
bbf.put((byte) this.getA());
bbf.putInt(this.getB());
bbf.putInt(this.getC());
byte[] msg = bbf.array();
개체에게 할당 한 , 나는 다른 정수 값을 얻는다. 어디에서 문제가 발생했는지 알 수 있습니까? 덕분에 !
오프셋은 5이다. 빅 엔디안 또는 리틀 엔디안 값이 필요합니까? –
바이트 순서를 Little Endian으로 설정합니다. 그러나 문제는 아직 거기에있다 –