Cómo convertir un número de coma flotante de precisión simple a un número decimal
2. Ejemplo de conversión en VB:
Programa de conversión de números de punto flotante VB
. Utilice la función CopyMemory OptionExplicit ' ' conversión.
privatedeclausebcopymemorylib " kernel 32 "alias" RtlMoveMemory "(destino asany, SourceAsAny, ByValLengthAsLong)
DimFAsSingle ' 'Número decimal
马锔(3) asbyte' 16 número de coma flotante hexadecimal
El subcomando privado 1_click()' se convierte en un número decimal.
A (0) = clng ("&h" & text1 (3).text)' 16 caracteres hexadecimales a números.
a(1)= CLng(" & H " & texto 1(2). Texto)
a(2)= CLng(" & H " & texto 1(1 ). Texto)
A(3)=CLng("&H"&Text1(0). Texto)
CopyMemoryF, A(0), 4 'Conversión
<. p>' Text2.text = f 'Mostrar los resultados.Conector final
PrivateSubCommand2_Click()'()'convierte a formato de punto flotante.
F = val (text2.text)' Carácter decimal a número.
CopyMemoryA(0), f, 4 'Convertir
Texto1 (0). 'Text = IIF (a (3) > 15, hex (a (3)), " 0 " & hex (A (3))' muestra el resultado.
Text1( 1). Text= IIf(A(2)>15,Hex(A(2)),"0"&Hex(A(2)))
Texto1(2)>15,Hex(A(). 1))," 0"&Hex(A(1)))
Texto1(3)=IIf(A(0)>15,Hex(A(0)), "0"&Hex. (A(0)))
Conector final
Datos extendidos:
Ejemplo de conversión en lenguaje C:
Unión f p>
{
floatf
caracteres sin firmar[4];
} a;
p>
floatm
Gráfico sin firmar[4]
//Convertir a número decimal
a s[0]= 0x 51; //Little endian
.a .s[1]= 0x 06;
a s[2]= 0x9E
a s[3] = 0x3F;
m = a.f
//Convertir a formato de punto flotante
a f = m;
t[0 ]= a s[0] ;
t[1]= un
t[3]; = un .s[3];