Tôi có mảng byte trong đó dữ liệu trong mảng thực sự là dữ liệu ngắn. Các byte được sắp xếp trong little endian:Chuyển đổi giá trị mảng byte theo thứ tự cuối nhỏ thành giá trị ngắn
3, 1, -48, 0, -15, 0, 36, 1
nào khi chuyển đổi sang kết quả giá trị ngắn trong:
259, 208, 241, 292
Có cách nào đơn giản trong Java để chuyển đổi các giá trị byte thành giá trị ngắn tương ứng của chúng? Tôi có thể viết một vòng lặp mà chỉ mất mỗi byte cao và thay đổi nó bằng 8 bit và OR nó với byte thấp của nó, nhưng có một hit hiệu suất.
Bạn đã đưa 8 byte, và sau đó 4 lần ... trong khi 8 byte chỉ nên dẫn đến giá trị dài * duy nhất *. Ngoài ra, bạn đã không nói những gì bạn mong đợi. Về cơ bản câu hỏi của bạn là rất không rõ ràng tại thời điểm này ... –
Không, nó không phải là không rõ ràng. Bạn có dữ liệu từ mảng byte và những gì nó chuyển đổi thành. Không thể rõ ràng hơn thế. – AndroidDev
Có, nó có thể. Bởi vì nó có vẻ như bạn đang * thực sự * chuyển đổi thành 'short', không phải' long' ... và bạn đã không nói những gì bạn mong đợi * kết quả được. Cảm thấy tự do không làm cho câu hỏi trở nên rõ ràng hơn - nhưng hãy nhớ rằng bạn là người đang tìm kiếm sự giúp đỡ và câu hỏi của bạn càng tốt thì sự trợ giúp càng tốt. –