16进制数转浮点数(VB6)

Eddy 发布于2010-8-21 15:11:0 分类: 程序设计 已浏览loading 网友评论1条 我要评论

UPK上的一个提问。

看了下,可以这样实现(思路就是把数据copy到一个指向浮点数指针所在内存):

Option Explicit
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Sub Command1_Click()
        Dim a As Long, b As Single
        a = &H851F
        CopyMemory b, a, 2
        Text1 = Str(b)
End Sub
输出:4.775485E-41

在OD中测试了下 结果是一样的

00401190     8945 00       MOV DWORD PTR SS:[EBP],EAX                                 ;EAX=851Fh
00401193     D945 00       FLD DWORD PTR SS:[EBP]                                         ; FLOAT 4.775485e-41

已经有(1)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/program/530.html     欢迎订阅Eddy Blog

  1. 发表于2010-8-21 20:11:58

    呃。vb的代码。。。

    忘得差不多了,看起都吃力了。

    Eddy 于 2010-8-21 21:22:47 回复
    Grimace

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言