繁体   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