[英]Java equivalent of ntohll function
Java中是否有与ntohll
C ++函数等效的函数?
ntohll
的参考可以在这里找到: ntohll function 。
关键是我需要将64位长的TCP / IP网络顺序转换为小端长的顺序。
ntohll的java等效功能是:long等效于64位
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public long ntohll(long convert)
{
ByteBuffer bbuf = ByteBuffer.allocate(8);
bbuf.order(ByteOrder.BIG_ENDIAN);
bbuf.putLong(convert);
bbuf.order(ByteOrder.LITTLE_ENDIAN);
return bbuf.getLong(0);
}
Java已经使用了网络字节顺序,因此无需转换它们(这就是Java中不存在这些功能的原因)。
更新资料
由于您正在读取的文件格式为小尾数位格式,因此,如果使用的JDK <1.5,则必须编写自己的文件(或使用库)。 如果使用的是JDK 1.5或更高版本,则可以对整数对象使用reverseBytes
方法:
long data = Long.reverseBytes(some_data);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.