我正在將一個進程移植到Java。在C#和C++中已經有工作版本。我有一個在C#中的部分,我做Marshal.Copy(...)將64個超長轉換爲512字節,並在C++中的行我用memmove(...)做同樣的事情。 Java中有什麼可用於實現相同的結果?我需要相同的二進制信息,只是字節而不是長整型。在Java中將long [64]轉換爲byte [512]?
編輯:
我移植到Java的原因是爲了採取的Java自然有便攜性的優勢。我不想使用本地代碼。
另一件事。由於Java不包含無符號值,因此我需要通過一點點改變我的請求。我想從64個long中的每一個(C#和C++中的ulong)中獲得8個無符號字節值,以便稍後可以在數組中使用這些值。這需要發生數千次,所以最快的方式將是最好的方式。
+1你甚至不需要循環:bb.asLongBuffer()。put(la); – wierob 2010-02-06 12:02:48
謝謝!您的建議更容易閱讀,並可能更有效。 http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#views – trashgod 2010-02-06 18:04:20