我有一个由我多年前写过的视觉基础程序生成的文件。我试图转换这些数据,所以我可以在我写的替代java程序中读取它。我在转换VB日期是一个8字节双倍的问题。我看过this帖子。通过完成这些步骤,我可以手动转换日期(0x00000000E080E440)(12/18/2014)。小端到大端十进制= 4.1991E4,其中41991代表正确的日期。现在我想在java中编写这个。另一篇文章引用了交换代码,我已经提取了这段代码:
/**
* Byte swap a single double value.
*
* @param value Value to byte swap.
* @return Byte swapped representation.
*/
public static double swap (double value)
{
long longValue = Double.doubleToLongBits (value);
longValue = swap (longValue);
return Double.longBitsToDouble (longValue);
}
该代码无法编译。我刚刚学习java所以请耐心等待。这段代码看起来像是递归调用自身,但是当它调用自身(swap)时,它传递longValue,当swap期望double时,long值长。我错过了什么吗?如何将字节从小端交换为大?
答案 0 :(得分:0)
代码不会自行调用。它正在调用方法swap(long longValue)
,您的方法是swap(double value
)。它可能没有编译,因为你没有其他方法。