我需要通过JNI调用本机函数int getSize(uint_64& out)
。这里有一些问题我打算通过将byte[]
传递给JNI代码,用值uint64_t &out
填充它,然后从结果中创建一个BigInteger来解决。所以,从Java我调用getSize(byte[] size)
,在JNI C代码中我将一个新的uint64_t传递给getSize(uint64_t& out)
,然后将其中的值复制回字节数组,最后我从这个字节中创建一个BigInteger阵列。我的问题是如何将uint64_t
值复制到字节数组中?我知道在Java端,值必须是big-endian顺序,但我如何计算uint64_t
的字节顺序是什么?
答案 0 :(得分:2)
jlong
的字节顺序当然是本机字节顺序,但您根本不需要处理字节顺序。只需从您的原生方法返回<?php
/* Send a string after a random number of seconds (2-10) */
sleep(rand(2,10));
echo("Hi! Have a random number: " . rand(1,10));
?>
即可。它将以Java代码的大端顺序到达,Java代码可以以任何您喜欢的方式处理它。