Cómo definir una estructura de 16 bits en dos partes: 4 bits y 12 bits en lenguaje C
1. Se puede implementar mediante campos de bits, de la siguiente manera:
struct int_16
{
unsigned a: 4; /ocupa El nombre de la variable parcial de 4 bits es a
unsigned b : 12; //El nombre de la variable parcial de 12 bits es b
};
2. Las variables de tipo bit se definen en lenguaje C y se pueden personalizar mediante campos de bits.
Definición de campos de bits y descripción de variables de campos de bits La definición de campos de bits es similar a la definición de estructura y su forma es:
estructura nombre de estructura de campo de bits
{ lista de campos de bits};
La forma de la lista de campos de bits es: Nombre de dominio de bits del especificador de tipo: longitud del campo de bits;
Ejemplo: Calcular el estándar de número de punto flotante IEEE754 mediante el campo de bits, único El número máximo, mínimo y mínimo débilmente canónico de números de punto flotante de precisión.
#include
typedef struct FP_SINGLE
{
fracción __int32 unsigned: 23;
sin firmar __int32 exp: 8;
sin firmar __int32 signo: 1;
} fp_single;
int main()
{
flotante x;
fp_single * fp_s = (fp_single *)&x;
fp_s->signo = 0;
fp_s- >exp = 0xfe;
fp_s->fracción = 0x7fffff;
printf ("Número flotante máximo: %le\n",(double)x);
fp_s->signo = 0;
fp_s->exp = 0x1;
fp_s->fracción = 0x0;
printf ("número mínimo flotante : %le\n",(double)x);
fp_s->signo = 0;
fp_s->exp = 0;
fp_s- >fracción = 0x1;
printf ("número de especificación débil mínimo flotante: %le\n\n",(double)x);
devuelve 0;
}