如何从JNI代码中检测字节序?

时间:2015-09-10 23:07:24

标签: java c++ java-native-interface

我需要通过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的字节顺序是什么?

1 个答案:

答案 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代码可以以任何您喜欢的方式处理它。