Przenoszę proces na Javę. Są już działające wersje w C# i C++.Konwersja długiej [64] na bajt [512] w Javie?
Mam sekcji w C#, że robię Marshal.Copy (...), aby przekonwertować 64 ulongs do 512 bajtów i tej linii w C++ Używam memmove (...), aby zrobić to samo. Co jest dostępne w Javie, aby osiągnąć ten sam rezultat? Potrzebuję tych samych informacji binarnych w tej samej kolejności, co bajty zamiast długich.
Edit:
Powodem jestem przenoszenie do Javy jest skorzystać z możliwości przenoszenia, że Java ma naturalnie. Nie chciałbym używać natywnego kodu.
Kolejna sprawa. Ponieważ Java nie zawiera niepodpisanych wartości, muszę trochę zmienić to, o co prosiłem. Chciałbym osiągnąć 8 niepodpisane wartości bajtów z każdej z 64 longs (ulongs w C# i C++), tak, że mogę używać tych wartości w indeksach w tablicach później. To musi się zdarzyć tysiące razy, więc najszybsza droga byłaby najlepsza.
+1 Nie potrzebujesz nawet pętli: bb.asLongBuffer(). Put (la); – wierob
Dziękujemy! Twoja sugestia jest łatwiejsza do odczytania i potencjalnie bardziej skuteczna. http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#views – trashgod