Colección de citas famosas - Consulta de diccionarios - Cómo convertir un número de coma flotante de precisión simple a un número decimal

Cómo convertir un número de coma flotante de precisión simple a un número decimal

1. Los números de punto flotante de precisión simple cumplen con el estándar IEEE754 y son de 32 bits. El primer bit es el bit de signo, los siguientes 8 bits son el exponente y los últimos 23 bits son la mantisa. Basta con conocerlos en programación. El método de conversión es el siguiente:

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

{

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];