簡體   English   中英

Java相當於ntohll函數

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM