Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Algoritmi - conversione in binario
Forum - Algoritmi - conversione in binario

Avatar
ilnibbio (Normal User)
Rookie


Messaggi: 58
Iscritto: 13/05/2010

Segnala al moderatore
Postato alle 15:02
Sabato, 11/12/2010
vorrei sapere se sapreste dirmi un algoritmo per fare una conversione da un numero decimale con la virgola (float) in binario?

PM
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Up
2
Down
V
Segnala al moderatore
Postato alle 15:59
Sabato, 11/12/2010
Tempo fa avevo caricato questo programma sul sito che mostrava un valore float in binario:
http://www.pierotofy.it/pages/sorgenti/browse/18310/3910/
Volendo puoi prendere la funzione showFloatBits, ed al posto che fargli stampare a video il valore in binario, salvi ogni bit dentro un array.
Ciao GuglielmoS.

PM
Avatar
nihal (Ex-Member)
Pro


Messaggi: 109
Iscritto: 12/04/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 15:28
Sabato, 11/12/2010
Tieni presente che solitamente per i numeri in virgola mobile si usa la codifica P754. Qui trovi un esempio completo per capire come funziona:

http://it.wikipedia.org/wiki/Sistema_numerico_binario#Rapp ...

PM
Avatar
AlesPalla (Normal User)
Rookie


Messaggi: 25
Iscritto: 23/11/2008

Up
1
Down
V
Segnala al moderatore
Postato alle 17:35
Sabato, 11/12/2010
Potresti fare con una union anonima:

Codice sorgente - presumibilmente C++

  1. struct Float_Conv{
  2.     union{
  3.         float  fl;
  4.         unsigned char conv[sizeof(float)];
  5.     };
  6. };



Cosi inserisci il numero in fl e lo ritrovi in conv con la rappresentazione che ha nella macchina

PM
Avatar
Pitagora (Member)
Expert


Messaggi: 367
Iscritto: 12/06/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 15:14
Sabato, 11/12/2010

PM
Avatar
ilnibbio (Normal User)
Rookie


Messaggi: 58
Iscritto: 13/05/2010

Up
0
Down
V
Segnala al moderatore
Postato alle 12:38
Domenica, 12/12/2010
GuglielmoS grazie del programma, ma io non so programmare in C e volevo sapere se per caso saresti in grado di scrivermelo sotto forma di algoritmo o se ci riesci in VB. Grazie in anticipo

PM
Avatar
GuglielmoS (Ex-Member)
Pro


Messaggi: 114
Iscritto: 27/11/2009

Up
0
Down
V
Segnala al moderatore
Postato alle 23:17
Domenica, 12/12/2010
Testo quotato

Postato originariamente da ilnibbio:

GuglielmoS grazie del programma, ma io non so programmare in C e volevo sapere se per caso saresti in grado di scrivermelo sotto forma di algoritmo o se ci riesci in VB. Grazie in anticipo


La mia soluzione purtroppo credo che funzioni solo con il C, perchè sfrutta appunto una caratterisca del linguaggio (la union) per poter accedere ai bit di una variabile float.
Se non usi il C, devi andare a vedere il formato float come ti è già stato scritto, ed implementarlo nel linguaggio che ti interessa (http://it.wikipedia.org/wiki/IEEE_754).
Ciao GuglielmoS.

PM