Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 10 in base 2

Wikibooks, manuali e libri di testo liberi.
Vai alla navigazione Vai alla ricerca
Indice del libro

Dato un numero in base 10 lo voglio convertire in base 2...


La figura mostra l'algoritmo da eseguire per la conversione.

Esempio:

  • Convertiamo 35 da base 10 in base 2

N=35

B=10

E=0

Nb=0000


2^E=1

1 è > 35 ? No

Allora E = E+1 = 1

2^E=2

2 è > 35 ? No

Allora E = E+1 = 2

2^E=4

4 è > 35 ? No

Allora E = E+1 = 3

2^E=8

8 è > 35 ? No

Allora E = E+1 = 4

2^E=16

16 è > 35 ? No

Allora E = E+1 = 5

2^E=32

32 è > 35 ? No

Allora E = E+1 = 6

2^E=64

64 è > 35 ? Sì

Allora E = E-1 = 5

Nb=Nb+2^E= 100000

N=N-2^E = 35-32=3

E=0

2^E=1

1 è > 3 ? No

Allora E = E+1 = 1

2^E=2

2 è > 3 ? No

Allora E = E+1 = 2

2^E=4

4 è > 3 ? Sì

Allora E = E-1 = 1

Nb=100000 + 10

N=N-2^E = 3-2=1

E=0

2^E=1

1 è = 1 ? Sì

Nb=100000 + 10 + 1

N=N-2^E = 1-1=0

NB

100000+

000010+

000001=


100011

FINE


  • Più semplicemente.....

Tenere a portata di mano una tabellina con le potenze in base 2 in ordine crescente a partire dall'esponente zero:


Exp 2^Exp
0 1
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
... ...
  • Eseguire passo-passo il seguente algoritmo:


Passo Azione
1 Dato il numero in base 10 N=35
2 Cerco nella tabellina di cui sopra, la potenza Exp del 2

tale che 2^Exp <= N

3 Aggiungi la potenza trovata al risultato => Risult
4 N = N - 2^Exp
5 Se N = 0 hai terminato!!!
6 Altrimenti torna al punto 2
  • Ad Esempio: Convertiamo 35 da base 10 in base 2...

N = 35

2^5 = 32 < N

Risult = 2^5

N = 35 - 32 = 3

Torno al punto 2

2^1 = 2 < N

Risult = 2^5 + 2^1

N = 3 - 2 = 1

Torno al punto 2

2^0 = 1 = 1

Risult = 2^5 + 2^1 + 2^0

N = 1 - 1 = 0

Ho terminato.


Infine trasformo il Risultato espresso in potenze del 2

nel numero binario cercato, sostituendo la cifra 1 nelle posizioni

relative agli esponenti della base 2 che compaiono nel risultato e

pongo a 0 le cifre nelle altre posizioni.


Peso 5 4 3 2 1 0
Numero in base 2 1 0 0 0 1 1