Red de conocimientos turísticos - Conocimientos sobre calendario chino - Programación de puerto serie: cómo convertir números de punto flotante a tipo de byte hexadecimal en VB

Programación de puerto serie: cómo convertir números de punto flotante a tipo de byte hexadecimal en VB

La conversión a VB es un poco molesta.

Un fragmento de código que he creado antes es el siguiente (verificado):

Public Function funSignSngTo4Byt(SingleData As Single) As Boolean

'Bit alto primero, bit bajo último

Dim i, d como entero

Dim PorN como byte

Dim ExpVal, temp As Long

Dim FraVal, t1 As Long

Dim SingleFra, tempval As Single

Si SingleData = 0 Entonces

Para i = 0 a 3

gbytBinData(i) = 0

Siguiente i

Salir de la función

Finalizar si

Si SingleData gt = 0 Then 'Sign bit

PorN; = 0

Else

PorN = amp H80

SingleData = -1 * SingleData 'se convierte en un número positivo

End If< / p>

ExpVal = Int(Log(SingleData) / Log(2)) 'Índice

Si ExpVal gt 128 Entonces

funSignSngTo4Byt = False

<; p > Función de salida

Finalizar si

Si ExpVal = 127 Entonces

SingleFra = SingleData / (2 ^ ExpVal)

De lo contrario

p>

SingleFra = SingleData / (2 ^ ExpVal) - 1

End If

FraVal = Int(SingleFra * 128 * 256 * 256) Y amp; HFFFFFF

ExpVal = ExpVal 127

gbytBinData(0) = PorN ExpVal \ 2

gbytBinData(3) = FraVal Y HFF

FraVal = Int(FraVal \ 256)

gbytBinData(2) = FraVal Mod 256

FraVal = FraVal \ 256

gbytBinData(1) = ( FraVal Mod 256 ) O ((ExpVal Y 1) * 128)

Función Final

">