PDA

View Full Version : [C]Visualizzare la rappresentazione binari float [s,e,m]


devil_prince
07-06-2011, 16:51
Ragazzi come da titolo devo fare questo esercizio per visualizzare la rappresentazione binaria di un float con segno esponente e mantissa.
Il programma mi funziona bene, vi posto il codice:
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#include <math.h>
void estrae_bit(long, char [32]);
void main()
{
char i, bit[32];
union basic_single {
float fa;
long la;} a;
printf("Inserire il float: "); scanf("%f",&a.fa);
estrae_bit(a.la, bit);
printf("\tfloat= %e\n", a.fa);
printf("\tlong hex = %08x\n",a.la);
printf("bit corrispondenti\tsegno esponente mantissa");
printf("\t\t\n %1d ",bit[0]);
for(i=1;i<=8;i++) printf("%1d",bit[i]);
printf(" ");
for(i=9;i<31;i++)
printf("%1d",bit[i]);
puts("\n");
}
/*verificare numero dei bit coincida con i dati iniziali*/
void estrae_bit(long reg, char B[32])
{
short i;
for (i=31;i>=0;i--)
{
B[i]=(char)(1 & reg);
reg=reg>>1;
}
}
il problema è che l'es mi chiede di confrontare i bit ottenuti con il numero per vedere che tutto sia andato per il verso giusto...come faccio?
Grazie in anticipo per le risp