Vb.net 这个4字节数据的类型是什么?

Vb.net 这个4字节数据的类型是什么?,vb.net,Vb.net,我这里有一段数据,我想用一个程序来编辑 该数据由两个单浮点数、两个未知的4字节数据类型和最后一个32位int组成 以下是十六进制格式的数据:00C8 41 00 00 70 41 00 20 00 00 7D 12 00 00 0A 00 00 转换后,它们应为以下数字: 25.0 (float) 15.0 (float) 45 (???) 16 (???) 10 (int) 请告诉我我缺少什么或者如何转换 注意:我只是尝试转换2个未知的4字节数据。我知道如何转换整数和浮点数 编辑:以下是一些

我这里有一段数据,我想用一个程序来编辑

该数据由两个单浮点数、两个未知的4字节数据类型和最后一个32位int组成

以下是十六进制格式的数据:
00C8 41 00 00 70 41 00 20 00 00 7D 12 00 00 0A 00 00

转换后,它们应为以下数字:

25.0 (float)
15.0 (float)
45 (???)
16 (???)
10 (int)
请告诉我我缺少什么或者如何转换

注意:我只是尝试转换2个未知的4字节数据。我知道如何转换整数和浮点数

编辑:以下是一些相同类型的已知值:

00 40 00 00 -> 90
E3 18 00 00 -> 35
00 00 01 00 -> 360
55 15 00 00 -> 30
这与某种角度/度数有关


谢谢

真的不清楚你做了什么,需要做什么。基于。您可以使用转换字节。你确定你的第二个角度是16而不是26

    Dim data() As Byte = {&H0, &H0, &HC8, &H41, &H0, &H0, &H70, &H41, &H0, &H20, &H0, &H0, &H7D, &H12, &H0, &H0, &HA, &H0, &H0, &H0}

    Dim f1 As Single = System.BitConverter.ToSingle(data, 0)
    Dim f2 As Single = System.BitConverter.ToSingle(data, 4)
    Dim s1 As Int32 = CDbl(System.BitConverter.ToInt32(data, 8)) / 65536 * 360
    Dim s2 As Int32 = CDbl(System.BitConverter.ToInt32(data, 12)) / 65536 * 360
    Dim s3 As Int32 = System.BitConverter.ToInt32(data, 16)
然后你只需要做相反的事情来得到你的字节

    s1 = 180.0 / 360 * 65536

    Dim bytes() As Byte = System.BitConverter.GetBytes(s2)

    For Each b As Byte In bytes
        Console.Write(b.ToString("x"))
    Next

现在,如果您的问题是打开文件,请编写文件或其他内容。如果你不知道它们是什么,为什么要编辑它们(未知字节)?你确定它们是两个值,每个值四个字节吗?你怎么知道这些数据类型的结果值是45和16?它们每个值应该是4个字节,是的。我知道它们是什么,因为有一个程序可以转换这段精确的数据,但不会将其转换回来。它也没有可用的源代码,所以我正在制作自己的编辑器。然而,我不知道这些值是什么类型的数据,也不知道如何来回转换。简单地说,如果最后32位(
0A 00 00
)等于整数
10
,那么你知道你在处理little endian,你可以(可能)假设其余的都应该这样处理,太糟糕了。确实应该是26。而且你的配方有效。谢谢。