(谈论Visual Basic 6)
我能够找到如何将 Double 转换为 8-bytes array,但反之亦然。
在我开始尝试编写代码之前,是否有一些例程可以执行(如链接问题中描述的“CopyMemory”)?在这种情况下可以使用“CopyMemory”吗?
(谈论Visual Basic 6)
我能够找到如何将 Double 转换为 8-bytes array,但反之亦然。
在我开始尝试编写代码之前,是否有一些例程可以执行(如链接问题中描述的“CopyMemory”)?在这种情况下可以使用“CopyMemory”吗?
使用与您链接到的答案相同的代码,但交换源和目标:
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 个字节长,否则你会遇到访问冲突。
请注意,这假定字节数组是使用链接到的问题创建的。来自其他来源的浮点值很可能使用不同的二进制表示,这意味着这将不起作用。