2

(谈论Visual Basic 6)

我能够找到如何将 Double 转换为 8-bytes array,但反之亦然。

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

4

1 回答 1

5

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

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 个字节长,否则你会遇到访问冲突。

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

于 2013-04-03T09:41:14.137 回答