#include /* Binarni prikaz realnog broja tipa float u racunalu. */ typedef union { float f; /* 4 bytea = 32 bita. */ int i; /* 1 rijec od 4 bytea. */ } Float_bits; void prikaz_int(int broj) { int nbits, bit, i; unsigned mask; /* Broj bitova u tipu int. */ nbits = 8 * sizeof(int); /* Pocetna maska ima bit 1 na najznacajnijem mjestu. */ mask = 0x1 << nbits - 1; for (i = 1; i <= nbits; ++i) { /* Maskiranje odgovarajuceg bita. */ bit = broj & mask ? 1 : 0; /* Ispis i blank nakon svaka 4 bita, osim zadnjeg. */ printf("%d", bit); if (i % 4 == 0 && i < nbits) printf(" "); /* Pomak maske za 1 bit udesno. */ mask >>= 1; } printf("\n"); return; } void prikaz_float(float f) { Float_bits u; u.f = f; printf(" 1. rijec: "); prikaz_int( u.i ); return; } int main(void) { float f; printf(" Upisi realni broj: "); scanf("%f", &f); printf(" Prikaz broja %10.3f [float] u racunalu:\n", f); prikaz_float(f); return 0; }