Tôi đang chuyển một quy trình sang Java. Đã có các phiên bản làm việc trong C# và C++.Chuyển đổi dài [64] thành byte [512] thành Java?
Tôi có một phần trong C# mà tôi làm Marshal.Copy (...) để chuyển đổi 64 ulongs thành 512 byte và dòng trong C++ tôi sử dụng memmove (...) để làm điều tương tự. Những gì có sẵn trong Java để đạt được kết quả tương tự? Tôi cần cùng một thông tin nhị phân theo thứ tự giống như byte thay vì dài.
Chỉnh sửa:
Lý do tôi chuyển sang Java là tận dụng lợi thế của tính di động mà Java tự nhiên có. Tôi không muốn sử dụng mã gốc.
Một điều khác. Vì Java không chứa các giá trị chưa ký, sau đó tôi cần phải thay đổi những gì tôi yêu cầu chỉ một chút. Tôi muốn đạt được 8 giá trị byte unsigned từ mỗi trong số 64 longs (ulongs trong C# và C++) để tôi có thể sử dụng những giá trị tại các chỉ số trong mảng sau này. Điều này cần phải xảy ra hàng ngàn lần vì vậy cách nhanh nhất sẽ là cách tốt nhất.
+1 Bạn thậm chí không cần vòng lặp: bb.asLongBuffer() .đặt (la); – wierob
Cảm ơn bạn! Đề xuất của bạn dễ đọc hơn và có khả năng hiệu quả hơn. http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#views – trashgod