Citat:
tosa: Prilično jednostavno:
Code:
int Int = *(int*)&FloatVar;
IspisiBinarniZapis(Int);
Samo obrati pažnju na veličinu tipa float, može biti različita od veličine integer-a.
Time će izgubiti sve bitove u IEE-754 zapisu FP broja i ostat će samo njegov cjelobrojni dio.
Za cjelobrojne tipove konverzija se može najlakše obaviti ovako nekako:
Code:
int a = 123;
for( size_t i = sizeof(a)*8; i != -1; --i ) {
cout << ( (a & (1 << i)) ? "1" : "0" );
}
Problem je ukoliko je a tipa float/double, što nad njima ne postoji bitwise operator &, pa je vjerojatno moguć točan binarni ispis jedino preko nekih ružnih castova u __int64 ili neki umjetni tip koji bi bio dovoljno velik da sadrži 8-10 bajtni FP broj.