자바로 프로세스를 이식하고 있습니다. 이미 C# 및 C++에서 작동하는 버전이 있습니다.Java에서 long [64]를 byte [512]로 변환 하시겠습니까?
Marshal.Copy (...)를 사용하여 64 개의 ulong을 512 바이트로 변환하고 C++의 해당 줄을 memmove (...)를 사용하여 동일한 작업을 수행하는 섹션이 있습니다. 같은 결과를 얻기 위해 Java에서 사용할 수있는 것은 무엇입니까? long 같은 대신에 바이트와 같은 순서로 동일한 이진 정보가 필요합니다.
편집 :
내가 자바로 포팅하고 있습니다 이유는 자바가 자연적으로 가지고있는 이동성을 활용하는 것입니다. 네이티브 코드를 사용하고 싶지 않습니다.
또 하나. Java에는 부호없는 값이 포함되어 있지 않기 때문에 요청하는 내용을 약간 변경해야합니다. 나는 배열의 인덱스에서 그 값을 사용할 수 있도록 각각 64 개의 long (C# 및 C++의 ulongs)에서 8 개의 부호없는 바이트 값을 얻고 싶습니다. 이것은 수천 번 발생할 수 있으므로 가장 빠른 방법이 최선의 방법입니다.
+1 루프가 필요하지 않습니다. bb.asLongBuffer(). put (la); – wierob
고마워요! 제안은 읽기 쉽고 잠재적으로 더 효율적입니다. http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#views – trashgod