Quantcast
Channel: VBForums
Viewing all articles
Browse latest Browse all 16044

Decimal to Hexadecimal in Half instead of Double

$
0
0
How can one modify the below code to output 16-bit Half instead of 64-bit Double?
Code:

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
    Destination As Any, _
    Source As Any, _
    ByVal Length As Long _
)
 
Private Function DoubleToHEX(dnumber As Double) As String
Dim HexBytes(0 To 7) As Byte
Dim i As Integer
Dim x As String
    CopyMemory HexBytes(0), dnumber, 8
    x = ""
    For i = 0 To 7
        x = HEX00(HexBytes(i)) & x
    Next i
 
    DoubleToHEX = x
 
End Function
 
Private Function HEX00(bNumber As Byte) As String
Dim x As String
    x = "0" & Hex(bNumber)
    HEX00 = Right(x, 2)
End Function
 
Private Function HEXtoDouble(hNumber As String) As Double
Dim HexBytes(0 To 7) As Byte
Dim i As Integer
Dim x As String
    If Len(hNumber) < 16 Then
        MsgBox "Hex Value too big"
        Exit Function
    End If
 
    For i = 0 To 7
        HexBytes(i) = Val("&H" & Mid(hNumber, (8 - i) * 2 - 1, 2))
    Next i
 
    CopyMemory HEXtoDouble, HexBytes(0), 8
 
End Function


Viewing all articles
Browse latest Browse all 16044

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>