一个4维Byte()怎么和float互转呢? VB:Dim value as Long 
Dim valueF as Singlevalue = &HC2C7FAE1
memcpy valueF, value, 4
debug.print valueF这样好像可以byte转float, 要怎么从float转为byte呢?

解决方案 »

  1.   

    value是个保留字,不要用做变量名称
      

  2.   

    Dim MyDouble, MyByteMyDouble = 3.488   ' MyDouble 为Double(双精度)。
    MyByte = CByte(MyDouble)   ' MyByte 值为 3MyDouble = 3.588
    MyByte = CByte(MyDouble)   ' MyByte 值为 4
    如果是这样的话, CByte好像不是我想要的.比如, valueByte = &H3F6ED158
    转换为Float后, 我想得到valueFloat = 0.9328818321或者valueFloat = 0.9328818321
    转换为Byte后, 我想得到valueByte = &H3F6ED158
      

  3.   

    memcpy是VC用法,VB用API CopyMemoryDeclare   Sub   CopyMemory   Lib   "kernel32 "   Alias   "RtlMoveMemory "   _ 
    (Destination   As   Any,   Source   As   Any,   ByVal   Length   As   Long) 然后
    CopyMemory varptr(float变量),varptr(4字节的byte()数组),4
      

  4.   

    memcpy是VC用法,VB用API CopyMemoryDeclare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " _  
    (Destination As Any, Source As Any, ByVal Length As Long)  然后
    CopyMemory varptr(float变量),4字节的byte()数组,4BYTE()数组直接就是地址了