Sto trasferendo un processo su Java. Esistono già versioni funzionanti in C# e C++.Conversione da lungo [64] a byte [512] in Java?
Ho una sezione in C# che faccio Marshal.Copy (...) per convertire 64 ulong in 512 byte e quella riga in C++ uso memmove (...) per fare la stessa cosa. Cosa è disponibile in Java per ottenere lo stesso risultato? Ho bisogno delle stesse informazioni binarie nello stesso ordine come byte invece di long.
Edit:
La ragione per cui sto porting di Java è quello di sfruttare la portabilità che Java ha naturalmente. Non vorrei usare il codice nativo.
Un'altra cosa. Dal momento che Java non contiene valori senza segno, quindi ho bisogno di cambiare quello che sto richiedendo solo un po '. Vorrei ottenere gli 8 valori di byte senza segno da ciascuno dei 64 long (ulongs in C# e C++) in modo da poter usare quei valori agli indici negli array in seguito. Questo deve accadere migliaia di volte, quindi il modo più veloce sarebbe il modo migliore.
+1 Non hai nemmeno bisogno del ciclo: bb.asLongBuffer(). Put (la); – wierob
Grazie! Il tuo suggerimento è più facile da leggere e potenzialmente più efficiente. http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#views – trashgod