Red de conocimientos sobre prescripción popular - Remedios caseros - El valor máximo doble escrito en lenguaje C.

El valor máximo doble escrito en lenguaje C.

Primero, debe saber que double tiene 8 bytes y luego necesita conocer la estructura de almacenamiento de memoria de double.

Los 52 dígitos inferiores son el número base, así que complete todos los 1 aquí.

El índice de 11 bits es el índice, y el índice de 11 bits puede representar -1024 ~ 1023. Se estipula que todos los bits se suman a 1023, por lo que el índice aquí se llena con 2046 bits.

El bit más significativo es el signo, 0 significa +.

El código de prueba es el siguiente:

#Contiene? & ltstdio.h & gt? //¿para? Función de impresión

#Contiene? & ltstring.h & gt//¿Para? memcpy

#¿Definición? ¿MAX_BASE? (0xffffffffffffffLL)? //52?bits? Conceptos básicos

¿#Definición? ¿MAX_POW? (2046LL?& lt& lt?52) //12?bits? pow(base?*?2^pow)

#Definición? ¿SIGN_BIT? (0x1LL?& lt& lt?63)

¿No es válido? printBits(long?龙?ll)

{

龙? ¿dragón? ¿Máscara facial? =?1;

for(int?i=sizeof(long?龙)?*?8?-?1;?i>=0;?i-)

{

printf("%1d ", (ll?& amp? máscara?& lt& lt?i)?1:?0);

}

printf ("\n");

}

int? Señor()

{

¿Dragón? ¿dragón? ¿ll? =?0;

ll? |=?MAX_POW

ll? |=?MAX _ BASE

imprimir bits(ll);

¿Doble? d;

memcpy(& d,?&ll,?sizeof(ll));

printf("¿Máximo? ¿Doble? Es decir:?%e\n ", d) ;

todos? |=?SIGN _ BIT

memcpy(& d,?& ampll,?sizeof(ll));

printf("¿Mínimo? ¿Doble? Es decir:?% e\ n ", d);

¿Volver? 0;

}