Differenze tra le versioni di "Fondamenti di informatica 1/Sistemi di numerazione"

m
Annullate le modifiche di 151.46.29.217 (discussione), riportata alla versione precedente di LoStrangolatore
m (Annullate le modifiche di 151.46.29.217 (discussione), riportata alla versione precedente di LoStrangolatore)
 
==Sistema numerico binario==
Ovviamente il sistema decimale non è l'unico modo per rappresentare i numeri. Un sistema molto usato, soprattutto nei computer, è il sistema binario, o a base 2. È molto semplice: utilizza solamente 2 cifre, lo ''0'' e l<nowiki>'</nowiki>''1''. Queste due cifre sono chiamate ''bit''. L'algebra di Boole(che tratteremo più avanti) si basa su questo sistema, per la proprieta di avere soltanto due valori, che possono significare "falso"(0) o "vero"(1), oppure "spento"(0) o "acceso"(1), o ancora, utilizzato negli apparecchi elettronici, "passa corrente"(1) o "non passa corrente"(0).
 
Avendo soltanto due valori, il numero di cifre necessario a rappresentare un numero è evidentemente maggiore rispetto al sistema decimale.
 
Il numero di valori rappresentabili con ''n'' bit è dato da questa operazione: <math>2^n-1</math>.
 
Per convertire un numero decimale in uno binario esistono diversi metodi.
Il più semplice è quello della divisione per 2 nell'insieme dei numeri interi, invertendo poi le cifre del risultato.
 
Dunque, prendiamo ad esame il numero 137.
Iniziamo dividendolo per 2, otteniamo 68 con il resto di 1.
Scriviamo 1 (il resto) nella prima cifra del numero da invertire e proseguiamo dividendo il risultato ed affiancando (a destra) ogni volta il resto, sia esso uguale a 1 o a 0, al numero da invertire, fintanto che non otterremo come risultato 1, quindi 1:2 = 0. Infine invertiamo l'ordine delle cifre del nostro "numero da invertire".
 
In breve e più chiaramente:
 
Dato il numero decimale 137 lo dividiamo per il numero 2, nell'insieme dei numeri interi, tenendo conto del suo resto (sempre uguale a 0 o ad 1), finché non raggiungiamo 1:2 = 0. Poi affianchiamo i resti e quindi ne invertiamo l'ordine.
 
*137:2 = 68 con resto 1
*68:2 = 34 con resto 0
*2:2 = 1 con resto 0
*1:2 = 0 con resto 1
 
*resti affiancati: 10010001
*resti affiancati invertiti (risultato in binario) : 10001001 = 137
 
==Conversione dal sistema binario al sistema decimale==
 
==Sistema ottale ed esadecimale==
|style="background-color:NAVAJOWHITE"|1111
|}
 
== Conversione tra binario, ottale ed esadecimale ==
Per convertire da binario ad ottale, si raggruppano le cifre a gruppi di 3 (perché 8 = 2<sup>3</sup>), quindi si convertono i singoli gruppi in ottale. Esempio:
 
{|
|-align="center"
!width="200px"|binario
!width="200px"|binario raggruppato
!width="200px"|ottale raggruppato
!width="200px"|ottale
|-align="center"
|10000000101
|10<nowiki>|</nowiki>000<nowiki>|</nowiki>000<nowiki>|</nowiki>101
|2<nowiki>|</nowiki>0<nowiki>|</nowiki>0<nowiki>|</nowiki>5
|2005
|}
 
Per convertire da binario ad esadecimale, si procede in modo analogo, raggruppando le cifre per 4 (perché 16 = 2<sup>4</sup>):
{|
|-align="center"
!width="200px"|binario
!width="200px"|binario raggruppato
!width="200px"|esad. raggruppato
!width="200px"|esadecimale
|-align="center"
|10000000101
|100<nowiki>|</nowiki>0000<nowiki>|</nowiki>0101
|4<nowiki>|</nowiki>0<nowiki>|</nowiki>5
|405
|}
 
Per convertire da ottale/esadecimale in binario, si procede al contrario, espandendo ciascuna cifra. Per esempio:
 
{|
|-align="center"
!width="200px"|ottale
!width="200px"|ottale raggruppato
!width="200px"|binario raggruppato
!width="200px"|binario
|-align="center"
|7421246
|7<nowiki>|</nowiki>4<nowiki>|</nowiki>2<nowiki>|</nowiki>1<nowiki>|</nowiki>2<nowiki>|</nowiki>4<nowiki>|</nowiki>6
|111<nowiki>|</nowiki>100<nowiki>|</nowiki>010<nowiki>|</nowiki>001<nowiki>|</nowiki>010<nowiki>|</nowiki>100<nowiki>|</nowiki>110
|111100010001010100110
|}
 
{|
|-align="center"
!width="200px"|esadecimale
!width="200px"|esad. raggruppato
!width="200px"|binario raggruppato
!width="200px"|binario
|-align="center"
|1E22A6
|1<nowiki>|</nowiki>E<nowiki>|</nowiki>2<nowiki>|</nowiki>2<nowiki>|</nowiki>A<nowiki>|</nowiki>6
|1<nowiki>|</nowiki>1110<nowiki>|</nowiki>0010<nowiki>|</nowiki>0010<nowiki>|</nowiki>1010<nowiki>|</nowiki>0110
|111100010001010100110
|}
 
Per convertire da ottale ad esadecimale e viceversa, si passa per una conversione intermedia in binario. Per esempio:
 
{|
|-align="center"
!width="200px"|ottale
!width="200px"|ottale raggruppato
!width="200px"|binario raggruppato per 3
!width="200px"|binario
|-align="center"
|7421246
|7<nowiki>|</nowiki>4<nowiki>|</nowiki>2<nowiki>|</nowiki>1<nowiki>|</nowiki>2<nowiki>|</nowiki>4<nowiki>|</nowiki>6
|111<nowiki>|</nowiki>100<nowiki>|</nowiki>010<nowiki>|</nowiki>001<nowiki>|</nowiki>010<nowiki>|</nowiki>100<nowiki>|</nowiki>110
|111100010001010100110
|}
 
{|
|-align="center"
!width="200px"|binario
!width="200px"|binario raggruppato per 4
!width="200px"|esad. raggruppato
!width="200px"|esadecimale
|-align="center"
|111100010001010100110
|1<nowiki>|</nowiki>1110<nowiki>|</nowiki>0010<nowiki>|</nowiki>0010<nowiki>|</nowiki>1010<nowiki>|</nowiki>0110
|1<nowiki>|</nowiki>E<nowiki>|</nowiki>2<nowiki>|</nowiki>2<nowiki>|</nowiki>A<nowiki>|</nowiki>6
|1E22A6
|}
 
 
[[Categoria:Fondamenti di informatica 1|Sistemi di numerazione]]
{{Avanzamento|100%}}