我已经将此代码重新为c格式,但我不明白过程是什么。谁能在Java为我解释它,或者如果Java有更好的方法,您可以在这里写吗?谢谢你
bool endianess(){
int testNum;
char *ptr;
testNum=1;
ptr=(char*) &testNum;
return (*ptr); //* return the byte at the lowest address
}
在一个小的endian体系结构中,整数值0x1将写在内存中,例如
0x1 0x0 0x0 ....
这样该功能将返回1
相反,在一个大的末日架构中,字节的顺序将为
0x0 0x0 ... 0x1
然而,许多字节在int中(较大或等于2的工作),因此
此功能将返回0。
以下是为什么它不能直接在Java中进行的参考,但是您可以使用JNI逃到C库并返回结果。
您可以使用system.getProperty(" sun.cpu.endian")。另外,您可以使用Sigar(https://github.com/hyperic/sigar),Java本机访问,JNI等。