ไม่มีจำนวนเต็มที่ไม่ได้ลงชื่อใน Java จำนวนเต็มทั้งหมดได้รับการลงนามและเป็น endian ใหญ่
ทางด้าน C แต่ละไบต์จะมี tne LSB ที่จุดเริ่มต้นอยู่ทางซ้ายและ MSB ที่ส่วนท้าย
ดูเหมือนว่าคุณกำลังใช้ LSB เป็นบิตที่มีนัยสำคัญน้อยที่สุดใช่ไหม LSB มักย่อมาจากไบต์ที่มีนัยสำคัญน้อยที่สุด
Endiannessไม่ได้ขึ้นอยู่กับบิต แต่อิงตามไบต์
ในการแปลงจากไบต์ที่ไม่ได้ลงชื่อเป็นจำนวนเต็ม Java:
int i = (int) b & 0xFF;
ในการแปลงจาก bit-endian 32 บิตที่ไม่ได้ลงนามในไบต์ [] เป็น Java แบบยาว (จากด้านบนของหัวของฉันไม่ได้ทดสอบ):
long l = (long)b[0] & 0xFF;
l += ((long)b[1] & 0xFF) << 8;
l += ((long)b[2] & 0xFF) << 16;
l += ((long)b[3] & 0xFF) << 24;