将8字节数组转换为Double

时间:2013-04-03 08:48:07

标签: vb6

(谈论Visual Basic 6)

我能够找到convert Double into 8-bytes array的方法,但不能找到反之亦然。

在我开始尝试编码之前,是否有一些常规操作(如链接问题中描述的“CopyMemory”)?在这种情况下可以使用“CopyMemory”吗?

1 个答案:

答案 0 :(得分:4)

使用与您链接的答案相同的代码,但交换源和目标:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    ByRef Destination As Any, _
    ByRef Source As Any, _
    ByVal Length As Long)

Function BytesToDbl(ByRef Bytes() As byte) As Double
  Dim D As Double
  CopyMemory D, Bytes(0), LenB(D)
  BytesToDbl = D
End Function

我已跳过此示例的任何错误检查,但您需要确保您的字节数组实际上是8个字节,否则您将获得访问冲突。

请注意,这假设字节数组是使用链接到问题创建的。来自其他来源的浮点值很可能使用不同的二进制表示,这意味着这不起作用。