java中的Visual Basic单数据类型

时间:2016-05-30 17:55:32

标签: java vb.net type-conversion

几年前我写了一个VB程序。为了学习Java,我用Java重写了它。我有我想要转换的档案数据,所以我可以在我的Java程序中阅读它。

我一直在研究数据类型表示以找出一些转换,但主要是由于我对Java的新意和远离VB的时间而陷入困境。

我在VB中有一个单独的字段,并且 69.7 (在内部表示为x'66668A42'。对于我的生活,我无法弄清楚这个内部表示。但是,我该怎么做把它转换成Java可以理解的东西(双重)?

1 个答案:

答案 0 :(得分:0)

0x66668A42是浮点值69.2

的小端表示

它可能是小端,因为它是原生的x86格式。相比之下,java将所有内容定义为大端,即使底层平台不是。

因此,要将VB单个转换为java浮点数,必须将字节转换为相反的顺序,然后将int转换为float:

public class L2BFloat {

    public static void main(String[] argv) {
        int x = 0x66668A42;
        System.out.println(little2Big2Float(x));
    }

    public static float little2Big2Float(int little) {
        // int endian conversion
        int big = (little & 0x000000FF) << 24
                | (little & 0x0000FF00) << 8
                | (little & 0x00FF0000) >>> 8
                | (little & 0xFF000000) >>> 24;
        // convert to float
        return Float.intBitsToFloat(big);
    }

}