[英]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.