View Single Post
Old 07-06-2011, 16:51   #1
devil_prince
Junior Member
 
Iscritto dal: May 2011
Messaggi: 17
[C]Visualizzare la rappresentazione binari float [s,e,m]

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:
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
devil_prince è offline   Rispondi citando il messaggio o parte di esso