(谈论Visual Basic 6)
我能够找到convert Double into 8-bytes array的方法,但不能找到反之亦然。
在我开始尝试编码之前,是否有一些常规操作(如链接问题中描述的“CopyMemory”)?在这种情况下可以使用“CopyMemory”吗?
答案 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个字节,否则您将获得访问冲突。
请注意,这假设字节数组是使用链接到问题创建的。来自其他来源的浮点值很可能使用不同的二进制表示,这意味着这不起作用。