Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako da ispisem binarnu predstavu float-A ?

[es] :: C/C++ programiranje :: kako da ispisem binarnu predstavu float-A ?

[ Pregleda: 2183 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Space Monkey

Član broj: 96670
Poruke: 6
*.ETF.BG.AC.YU.



Profil

icon kako da ispisem binarnu predstavu float-A ?07.06.2006. u 08:03 - pre 218 meseci
kako da ispisem binarnu predstavu float-A na glavnom izlazu?
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 08:39 - pre 218 meseci
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.
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.net.t-com.hr.

Sajt: www.dump.hr


Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 10:04 - pre 218 meseci
Zacudilo me...
Zasto ne rade bitwise operatori na double i float???
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 10:12 - pre 218 meseci
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.
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 10:15 - pre 218 meseci
Citat:
NrmMyth: Zacudilo me...
Zasto ne rade bitwise operatori na double i float???


Jer ih šugavi x86 ne podržava, tj. ne postoji x87 ekvivalent ovih instrukcija:

http://faydoc.tripod.com/cpu/bt.htm

Dakle cast u više integera pa ispis bitova u 32-bitnim odsječcima :)
 
Odgovor na temu

Mali Misha
Mihajlo Anđelković
NBGD

Član broj: 79396
Poruke: 379
*.powernet.bg.

ICQ: 195487525
Sajt: cpptea.com


+1 Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 10:26 - pre 218 meseci
A zar ne bi moglo preko char?
Ipak se ++uje.
Prikačeni fajlovi
 
Odgovor na temu

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 10:44 - pre 218 meseci
Odlično, baš tako - ružno i netipizirajuće, ali jebiga takav je gadni x87 FPU ;) Mislim da može i elegantnije preko kompajler intrinsika za SSE, pa ako se kome da..
 
Odgovor na temu

Space Monkey

Član broj: 96670
Poruke: 6
*.ETF.BG.AC.YU.



Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 14:22 - pre 218 meseci
ljudi hvala, spasli ste me!
 
Odgovor na temu

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.dsl.pipex.com.



+4 Profil

icon Re: kako da ispisem binarnu predstavu float-A ?07.06.2006. u 18:18 - pre 218 meseci
Citat:
cynique: Time će izgubiti sve bitove u IEE-754 zapisu FP broja i ostat će samo njegov cjelobrojni dio.


Nece izgubiti nishta u sluchaju da su oba tipa iste velichine. Ono je obichan cast preko pointera, sadrzhaj memorije se ni na koji nachin ne menja, gomila bitova i dalje ostaje gomila bitova.
 
Odgovor na temu

KernelPanic
Veljko B. Petrović
Novi Sad

Član broj: 64121
Poruke: 1
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: kako da ispisem binarnu predstavu float-A ?08.06.2006. u 00:12 - pre 218 meseci
Slažem se sa NastyBoy. Ovaj program (npr) ispisuje proverenu tačnu vrednost

Code:

#include <stdio.h>

int main()
{
    double x=2.5;
    long long* z;
    z=(long long*)(&x);
    printf ("%llX\n",(*z));
    exit(0);
}


Za ispis čistog float je dovoljno zameniti double sa float i long sa long long. Ostavio sam heksadecimalne vrednosti pošto je trivijalno odatle stići u binarno.
God is Real unless declared Integer.
 
Odgovor na temu

[es] :: C/C++ programiranje :: kako da ispisem binarnu predstavu float-A ?

[ Pregleda: 2183 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.