Red de conocimientos sobre prescripción popular - Conocimiento de perdida de peso - Las variables reales en lenguaje C se dividen en dos tipos, son () y ()

Las variables reales en lenguaje C se dividen en dos tipos, son () y ()

Las variables de tipo real en lenguaje C se dividen en dos tipos, son () y ()

variables de tipo real flotante y doble

Las variables de tipo real son dividido en dos categorías: tipo de precisión simple y tipo de precisión doble. Los especificadores de tipo son especificadores flotantes de precisión simple y especificadores dobles de precisión doble. En Turbo C, el tipo de precisión simple ocupa 4 bytes (32 bits) de espacio de memoria, su rango de valores es 3.4E-38~3.4E+38 y solo puede proporcionar siete dígitos significativos. El tipo de doble precisión ocupa 8 bytes (64 bits) de espacio de memoria, su rango de valores es 1,7E-308~1,7E+308 y puede proporcionar 16 dígitos significativos.

El formato y las reglas de escritura de la descripción de variable de tipo real son las mismas que las de tipo entero.

Por ejemplo: float x,y; (x,y son cantidades reales de precisión simple)

double a,b,c (a,b,c son de precisión doble) cantidades reales) Cantidad)

Las constantes de tipo real se tratan como de doble precisión, independientemente de si son de precisión simple o doble.

void main(){

flotador a;

doble b;

a=33333.33333;

b=33333.33333333333333;

printf("%f\n%f\n",a,b);

} En lenguaje C, las variables reales se dividen en dos tipos, son_______________.

Tipo flotante y tipo doble ¿Cuáles son los dos tipos de variables reales en el lenguaje C?

Las variables reales flotantes y dobles en lenguaje C se dividen en tipo flotante y tipo doble, que se almacenan como números de punto flotante y se dividen en símbolos numéricos, partes _______ y ​​_______

Real- Las variables de tipo en lenguaje C se dividen en tipo flotante y tipo doble. Se almacenan como números de punto flotante y se dividen en símbolos numéricos, exponentes y mantisas. Las variables de tipo real en lenguaje C se dividen en tipo flotante y tipo doble. Los números de coma flotante se almacenan y dividen en varias partes: signo numérico, _______ y ​​mantisa.

Código. Se utiliza para indicar la posición del punto decimal en el número. Es un entero con signo.

¿Las variables reales en lenguaje C son positivas o negativas?

Variable de tipo real!!!!!!

¿Qué es una variable de tipo real? ¿Y el código ASCII se elimina? Solo hay caracteres y los caracteres individuales se codifican usando ASCII. " Significa "

El tipo flotante doble no solo está firmado, sino que incluso se define como doble flotante sin signo y flotante sin signo, ¡lo cual es incorrecto! El compilador no informará ningún error, ¡pero el resultado definitivamente te hará sentir desconcertante! La diferencia entre variables reales de doble precisión y variables reales largas de doble precisión en lenguaje C

Variables reales de doble precisión y variables reales largas de doble precisión: esto no siempre es una diferencia.

La precisión del doble largo no es inferior al doble.

En los inicios de VC, long double era un alias de double.

En los compiladores X86 modernos, el doble es generalmente un número de punto flotante de 64 bits y el doble largo es generalmente un número de punto flotante de 80 bits.

Para otras plataformas, doble y doble largo tienen interpretaciones diferentes. Generalmente, es necesario usar algo como sizeof para determinar el significado de doble largo en el sistema donde se encuentra.

En el sistema 80x86, el propio 80x87 es un coprocesador de punto flotante de 80 bits, por lo que generalmente el doble largo corresponde a números de punto flotante de 80 bits, pero hay algunos sistemas que utilizan números de punto flotante de 128 bits. o números de coma flotante de 64 bits. Double es generalmente un número de coma flotante de 64 bits, que se obtiene mediante truncamiento de 80x87.

Aunque es un número de coma flotante de 80 bits, puede ocupar 10, 12 o 16 bytes de espacio de almacenamiento, lo que varía según el compilador.

No existe un valor de riqueza, es solo un deseo de aprender. Espero que China pueda disfrutar de los recursos - "El espíritu de compartir debe ser que hay que acumular riqueza.

En general. nosotros El disfrute sexual mencionado es en ambas direcciones.

El espíritu unidireccional no es el más disfrutable. ¿Por qué las variables enteras generan 0 como variables reales en lenguaje C?

1. El formato de almacenamiento y el diseño de los números enteros y de punto flotante en la memoria son diferentes (para comprender el diseño de la memoria y la representación de los números de punto flotante, consulte: blog.csdn./songjinshi/ Article/details/7753777 )

2. Cuando printf inserta parámetros en la pila, los inserta según el tipo de parámetros reales, en lugar de según el tipo especificado en el carácter de formato. El proceso es el siguiente. Por lo tanto, el tipo de parámetros reales insertados en la pila no coincide con el tipo utilizado por la función real (la clave es que el tamaño de la memoria ocupada es diferente), por lo que el resultado como se menciona en el título aparecerá en el archivo específico. análisis, debido a que se está analizando el diseño de la memoria del número entero, será muy pequeño cuando sea un número de punto flotante, porque el número entero se almacena originalmente en 4 bytes y se analiza como un número de punto flotante de 8 bytes, por lo que el valor resultante será muy pequeño, al igual que la representación de números de coma flotante: desnormalización: cuando Cuando todos los bits binarios de E son 0, N es una forma desnormalizada.

Tenga en cuenta que el bit implícito a la izquierda del punto decimal es 0 en este momento. ¿Por qué e es igual a (1-bias) en lugar de (-bias)? Esto está diseñado principalmente para una transición suave entre valores normalizados y valores no normalizados. Continuaremos discutiendo esto más adelante.

Con la forma desnormalizada, podemos representar el 0. Después de configurar el bit de signo S en 1 y configurar todos los demás bits en 0, obtenemos -0,0 de manera similar, configurar todos los bits en 0 obtendrá +0,0; Los números desnormalizados también tienen otros usos, como representar decimales que están muy cerca de 0, y estos decimales están uniformemente cerca de 0, lo que se denomina propiedad de "desbordamiento gradual".

A continuación se publican dos fragmentos de código de desensamblado para analizar cómo se insertan los parámetros en la pila:

printf("%f",45);

00405028 mov esi, esp

0040502A push 2Dh

0040502C push offset _ORDER_SERVER_ADDRESS-0ACh (43F2ACh)

00405031 call dword ptr [__imp__printf (43C124h)]

00405037 add esp,8

printf("%f",d (d es una variable entera)

00405028 mov esi,esp

0040502A mov ecx,dword ptr [d]

0040502D push ecx

0040502E push offset _ORDER_SERVER_ADDRESS-0ACh (43F2ACh)

00405033 call dword ptr [__imp__printf (43C124h)]

00405039 add esp,8

0040503C cmp esi,esp

0040503E call _RTC_CheckEsp (439760h)

doble a =5,c ;

float b;

int d=0x40a00000,y=6;

int *p;

char s=5;

p=&d;

b=(flotante)a;

printf("%f,%f,%f,%f ,%f, %f,%d",b,c,(float)d,s,(float)s,y,y);

00405028 mov esi,esp

0040502A mov ecx ,dword ptr [y]

0040502D push ecx

0040502E mov edx,dword ptr [y]

00405031 push edx

00405032 movsx eax,byte ptr [s]

00405036 mov dword ptr [ebp-34h],eax

00405039 fild dword ptr [ebp-34h]

0040503C sub esp,8

0040503F fstp qword ptr [esp]

00405042 movsx ecx,byte ptr [s]

00405046 push ecx

00405047 fild dword ptr [d]

0040504A sub esp,8

0040504D fstp qword ptr [esp]

00405050 sub esp,8

00405053 fld qword ptr [c]

00405056 fstp qword ptr [esp]

00405059 fld dword ptr [b]

0040505C sub esp

,8

0040505F fstp qword ptr [esp]

00405062 push offset _ORDER_SERVER_ADDRESS-0C4h (43F2ACh)

00405067 call dword ptr [__imp__printf (43C124h)]

0040506D add esp,30h

00405070 cmp esi,esp

00405072 call _RTC_CheckEsp (439780h) ¿Cuáles son los dos tipos de variables reales en lenguaje C?

Flotador de precisión simple

Precisión doble doble ¿Cuántos tipos de variables hay en el lenguaje C?

Los tipos básicos son:

int

short

char

float

doble

largo

unsigned

puntero

También hay tipos de datos combinados como matrices, estructuras y uniones, además Los tipos de datos se pueden personalizar.