Codifica binaria dell’informazione e algebra di Boole 1 Codifica binaria • Deriva da dispositivi che possono essere in due stati diversi, 0 e 1 – BIT = binary digit – BYTE, otto bit, può avere 28 differenti configurazioni (00000000, 00000001, 00000010, …, 11111111) • Calcolatore tratta diversi tipi di dati – tutti codificati in forma binaria 2 1 Numeri naturali e interi • Numeri naturali: si utilizza un sistema di numerazione posizionale in base 2 – an an-1 … a0 rappresenta an × bn + an-1 × bn-1 … + a0 × b0 in base b – 0 ⇔ 00000000, 8 ⇔ 00001000; 255 ⇔ 11111111 etc. • Numeri interi: una possibile rappresentazione è quella in modulo e segno (primo bit del byte per il segno – un byte codifica interi fra –127 (–(28–1 − 1)) e 127 (28–1 − 1) 3 Conversione decimale binaria Si calcolano i resti delle divisioni per due 19: 2 Æ 1 9:2 Æ 1 4:2 Æ 0 2:2 Æ 0 1:2 Æ 1 10011 4 2 Rappresentazione "in complemento a 2" • da 00…000 a 01…111 i numeri si considerano positivi e da 10…000 a 11…000 negativi • la trasformazione di un valore positivo in negativo si fa complementando ogni bit e sommando 1 al risultato (+7) 00111 Æ (-7) 11001 • la sottrazione si fa eseguento la somma del complemento a 2 (e trascurando il riporto eventuale 9 - 7 Æ 01001 + 11001 = X 100010 5 Rappresentazione ottale ed esadecimale • Base 8 – Si usano le lettere dell’alfabeto 0-7 • Esempio: 534 rappresenta 348 in base 10 • Base 16 – Si usano le lettere 0-9 e A-F • Esempio: B7F rappresenta 11 × 162 + 7 × 161 + 15 × 160 = 2943 (in base 10) 6 3 Abbreviazione dei binari in ottali ed esadecimali Consideriamo il numero 247 in base 10 (011110111 in base 2) 011110111 si abbrevia come 367 in ottale ___________ _________ 0F7 in ottale 7 Numeri frazionari e reali • 0.1011 in base 2 rappresenta • 1 × 2-1 + 0 × 2-2 + 1 × 2-3 + 1 × 2-4 in base 10 • Un numero razionale (impropriamente chiamato reale) si può rappresentare in virgola fissa – 10011.10110 rappresenta 19.6875 8 4 Reali in virgola fissa e mobile • La rappresentazione in virgola fissa suddivide una parola di memoria in due parti fisse • Numero di cifre prima e dopo la virgola fissato • Rappresentazione in virgola mobile – Usata spesso in notazione decimale • 0.137 × 108 • Utilizza n bit per l’esponente (e) e m per la mantissa (m) (mantissa è la parte frazionaria compresa tra –1 e 1) • R = m 2e 9 Caratteri • I caratteri vengono codificati mediante sequenze di bit • Codice ASCII: utilizza 7 bit e quindi può rappresentare 128 caratteri – Quando viene usato in un PC che ha bytes di 8 bit, un bit viene usato come bit di parità 10 5 Cenni all’algebra di Boole • L’algebra di Boole è basata su operazioni logiche che si applicano a operandi che possono assumero solo i valori vero e falso – Vero può essere rappresentato con il bit1 e falso con il bit 0 11 Operatori e tavole di verità A B 0 0 0 1 1 0 1 1 A AND B 0 0 0 1 A B 0 0 0 1 1 0 1 1 A NOT A 0 1 1 0 A OR B 0 1 1 1 12 6 Equivalenza • Due espressioni booleane sono equivalenti se hanno la medesima tavola di verità • Leggi di De Morgan – A AND B = NOT ((NOT A) OR (NOT B)) – A OR B = NOT ((NOT A) AND (NOTB)) 13 Tautologia e contraddizione • TAUTOLOGIA – Espressione che è sempre vera • Esempio A OR (NOT A) • CONTRADDIZIONE – Espressione che è sempre falsa • Esempio A AND (NOT A) 14 7