PDA

View Full Version : Conversione di un numero decimale in binario


masteryuri
04-10-2008, 23:21
Ho bisogno di convertire un numero decimale nel suo corrispondente binario.
Per la parte intera del numero so agire, ma per quanto riguarda la parte frazionaria non sono stato in grado di capire come fare. Potreste darmi qualche delucidazione?

Grazie come sempre ;)

masteryuri
04-10-2008, 23:28
Per i numeri interi divido sempre per la base, cioè 2, ed i resti delle divisioni (0 oppure 1) comporranno il numero binario a partire da destra, cioè dal bit meno significativo (LSB).

Per la parte frazionaria dovrei moltiplicare per 2... e poi?

Freaxxx
04-10-2008, 23:38
mi sa che non esistono ... il concetto di decimale o frazionario non esiste nel codice binario ...

inoltre per leggere/scrivere in binario oltre a considerare le varie potenze in base 2 bisogna tenere sempre conto della posizione , non a caso è un sistema di numerazione "posizionale" .

Del resto il risultato di una operazione di elevazione a potenza in base 2 con indice intero che va da 0 a infinito è sempre intero positivo .

Apocalysse
05-10-2008, 08:16
mi sa che non esistono ... il concetto di decimale o frazionario non esiste nel codice binario ...

Sbagli esistono eccome :)


Del resto il risultato di una operazione di elevazione a potenza in base 2 con indice intero che va da 0 a infinito è sempre intero positivo
Tutto dipende da come è rappresentato quel numero binario, le cifre decimali hanno un peso, quelle frazionario un altro, ad esempio il numero binario:
110000001111010011000000000000000
Ha 1 bit di segno, 8 bit di esponente ed 23 di mantissa, con questa informazione sei in grado di ricavarti il numero in virgola che nasconde :)

Io sono un po arrugginito, ma prova a dare un occhio a questi esempi:
http://corsiadistanza.polito.it/corsi/pdf/09ASOP/pdf/base_n_fp.pdf

http://www.giordy.org/Uni/1a1p/Rappresentazioni%20Numeriche.pdf

http://www.dsi.unifi.it/~costa/lucidi_2_02/Lezione3.pdf

-hide-
05-10-2008, 11:20
http://corsiadistanza.polito.it/cors.../base_n_fp.pdf

Quindi per la parte decimale si eseguono le moltiplicazioni successive fino ad ottenere 0 e si riportano i numeri dalla prima operazione fino all'ultima, cioè al contrario di come si fa con la parte intera.

Freaxxx
05-10-2008, 12:18
Sbagli esistono eccome :)


Tutto dipende da come è rappresentato quel numero binario, le cifre decimali hanno un peso, quelle frazionario un altro, ad esempio il numero binario:
110000001111010011000000000000000
Ha 1 bit di segno, 8 bit di esponente ed 23 di mantissa, con questa informazione sei in grado di ricavarti il numero in virgola che nasconde :)

Io sono un po arrugginito, ma prova a dare un occhio a questi esempi:
http://corsiadistanza.polito.it/corsi/pdf/09ASOP/pdf/base_n_fp.pdf

http://www.giordy.org/Uni/1a1p/Rappresentazioni%20Numeriche.pdf

http://www.dsi.unifi.it/~costa/lucidi_2_02/Lezione3.pdf

questa è una semplice convenzione ... :fagiano:

con un po' di matematica ci si arriva ... :oink:

masteryuri
05-10-2008, 12:32
Grazie a tutti, ora mi è chiaro. Ma mi sorge un'altra domanda, stando a questo esempio:


Esercizio 1
Convertire il numero 12.125 in binario.
Parte intera
La conversione è quella solita.
12 0 12:2=6 (resto 0)
6 0 6:2=3 (resto 0)
3 1 3:2=1 (resto 1)
1 1 1:2=0 (resto 1)
0
12 (base 10) --> 1100 (base 2)
Parte decimale
Si procede con moltiplicazioni successive.
0.125 * 2 = 0.250 (riporto 0)
0.250 * 2 = 0.500 (riporto 0)
0.500 * 2 = 1.000 (riporto 1) --> si considera solo
più la parte decimale
0.000 * 2 = FINE
Ordinando i riporti al contrario, si ottiene il risultato.
0.125 (base 10) --> 0.001 (base 2)
Il risultato sarà: 12.125 (base 10) --> 1100. 001 (base 2)


Dunque il numero binario è 1100.001, ma i calcolatori vedono le virgole? O vengono codificate anche quelle?

-hide-
05-10-2008, 13:00
assolutamente...nella word della locazione ci sono soltanto serie di 0 ed 1


di sicuro non scriverà "."

Freaxxx
05-10-2008, 13:43
Grazie a tutti, ora mi è chiaro. Ma mi sorge un'altra domanda, stando a questo esempio:



Dunque il numero binario è 1100.001, ma i calcolatori vedono le virgole? O vengono codificate anche quelle?

la risposta è matematica , o meglio algebra booleana , gli elementi dell'insieme che consideri sono 2 e 2 rimangono ... con la virgola arriveremmo a 3 e il PC si impallerrebbe oppure dovresti trovare uno stato intermedio tra "acceso" e "spento" :fagiano:

se metti una virgola in un codice binario sei fuori dall'informatica , sei libero di dire che 7*8=25 ma non aspettarti che l'interlocutore capisca di cosa parli , a maggior ragione se il tuo interlocutore è il PC , ovvero una macchina ...

masteryuri
05-10-2008, 14:06
Grazie mille, ora ho le idee più chiare. ;)

Apocalysse
05-10-2008, 22:28
Dunque il numero binario è 1100.001, ma i calcolatori vedono le virgole? O vengono codificate anche quelle?

Le vedono ma non come intendi te, l'esempio del numero binario che ho fatto è un modo in cui l'elaboratore puo utilizzare i numeri binari rappresentati con la virgola :)