Ogni buon programmatore dovrebbe conoscere almeno 2 sistemi di numerazione oltre quello decimale imparato (?) alle scuole elementari. Bene gli altri due sono il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori : uno alto e uno basso ; per cui si associa al valore alto la cifra binaria 1 e a quello basso la cifra binaria 0. Infatti nel sistema binario esistono solo due cifre 0 e 1 appunto e i numeri ma anche tutte le altre informazioni vengono rappresentati con sequenze di Zeri e di Uno. Il sistema di numerazione binario è ancora un sistema posizionale come quello decimale, cosa vuol dire: consideriamoli numero decimale 237, esso può essere scomposto in questo modo: 237 = 2 * 10 2 + 3 * 10 1 + 7 * 10 0 ossia le cifre del numero vengono moltiplicate per le potenze di dieci (da cui decimale) crescenti da destra verso sinistra. I numeri binari vengono costruiti nello stesso modo solo che invece di potenze di 10 si usano le potenze di 2, quindi considerando il seguente numero binario, scomponendolo ed effettuando i calcoli si ottiene il corrispondente numero decimale : 11010010 = 1*2 7 + 0*2 6 + 1*2 5 + 0*2 4+ 0*2 3 + 0*2 2 + 1*2 1 + 0*2 0 = 210 Ora che abbiamo visto la conversione Base 10 → Base 2 vediamo come si effettua l’operazione inversa. L’algoritmo è abbastanza semplice: 1 - Si divide la cifra decimale per 2 2 -Se il quoziente è pari si scrive 0 se è dispari 1 3 - Si divide il quoziente ancora per 2 e si ripete il passo 3 4 - La sequenza ottenuta ribaltata è la rappresentazione binaria del numero decimale Vediamolo applicato al numero decimale 145 (questo lo schema che di solito si utilizza): 145 72 | 1 ( cifra - significativa ) 36 | 0 18 | 0 9|0 4|1 2|0 1|0 0 | 1 (cifra + significativa ) Quindi 145 in base 10 equivale a 10010001 in base 2. Semplice vero ?? NOTA: Una cosa da notare è che con N cifre binarie possiamo rappresentare tutti i numeri da 0 fino a 2 n-1.