Algebra di Boole e porte logiche Dott.ssa Isabella D'Alba Corso PENTEST MIND PROJECT 2016
Algebra di Boole e porte logiche (I parte) Algebra di Boole I Sistemi di Numerazione (Posizionali, Non posizionali) Il Sistema di Numerazione Decimale Il Sistema di Numerazione Binario Il Sistema di Numerazione Ternario Il Sistema di Numerazione Ottale Il Sistema di Numerazione Esadecimale Il Sistema di Numerazione Sessadecimale Rappresentazione dei Numeri nei Sistemi di Numerazione Conversione dei Numeri tra Sistemi di Numerazione Operazioni sui Sistemi di Numerazione
Algebra di Boole e porte logiche (II parte) Rappresentazione dei numeri nei sistemi di elaborazione Rappresentazione dei Numeri Naturali Interi (senza segno) Rappresentazione dei Numeri Relativi Rappresentazione in Grandezza e Segno Rappresentazione in Complemento a 1 Rappresentazione in Complemento a 2 Rappresentazione dei Numeri Reali Rappresentazione in Virgola Fissa (Fixed-point) Rappresentazione in Virgola Mobile (Floating-point) Overflow Underflow
Algebra di Boole e porte logiche (III parte) Rappresentazione dell'informazione: i Codici Alcune proprietà dei Codici Il codice ASCII Tabella del codice ASCII Il codice BCD Codici a rilevazione di Errore Codice a Parità Pari Codici a correzione di Errore Codice di Hamming
Algebra di Boole L'Algebra Booleana è il ramo dell'algebra in cui le variabili possono assumere solamente i valori vero e falso (1 e 0) e le operazioni fondamentali sono gli operatori logici. [...] Con tale formalismo si possono descrivere le relazioni logiche: la combinazione di AND, OR e NOT permette di sviluppare qualsiasi funzione booleana, e i tre operatori logici formano pertanto un insieme funzionalmente completo. (fonte Wikipedia) https://it.wikipedia.org/wiki/george_boole
I Sistemi di Numerazione " ESISTONO SOLO 10 TIPI DI PERSONE AL MONDO: QUELLE CHE CONOSCONO IL CODICE BINARIO E QUELLE CHE NON LO CONOSCONO." Es: 10 rappresentazione di 10 (successore di 9), dove 0 assione. Nei Sistemi di Elaborazione è importante rappresentare le informazioni. La maggior parte delle informazioni sono quantivative ( definite in forma numerica). 80Kg Informazioni operazionali: date determinate operazioni, queste possono sviluppare altre operazioni. Ottanta chilogrammi Un Sistema di Numerazione è una struttura matematica che permette di rappresentare i numeri attraverso dei simboli. medio L'informazione si può definire su diversi livelli di rappresentazione: basso livello (linguaggio macchina) alto livello (interpretazione umana) Dott.ssa Isabella D'Alba - Corso PENTEST MIND PROJECT 2016 Informazione: PESO
I Sistemi di Numerazione POSIZIONALI (es: simbolo) il valore dipende dalla posizione che assume all'interno della stringa Operatività: operazioni semplici da eseguire sui simboli rappresentanti NON POSIZIONALI (es: numeri romani) un simbolo rappresenta un numero Operatività: difficile effettuare operazioni Compattezza: rappresentazione non compatta Compattezza: solo per numeri interi, l = Γlog β (n+1), dove - β>1 è detta base - il simbolo più a destra è detto cifra meno significativa - il simbolo più a sinistra è detto cifra più significativa Il valore del simbolo moltiplicato per la base, elevato per la posizione che occupano b n-1 x β n-1 + b n-2 x β n-2 + + b 1 x β 1 + b 0 x β 0 + b -1 x β -1 + b -2 x β -2 + + b -m x β -m
I Sistemi di Numerazione POSIZIONALI (es: simbolo) NON POSIZIONALI (es: numeri romani) Base= 3 S 0 = 0 S 1 = 1 = 18, dove I=1 X=10 V=5 L=50 C=100 M=1000 Es: LXXIV rappresenta 50+10+10+1+5 = 74 S 2 = 2 0 * β 0 + 0 * β 1 + 2 * β 2 = 0 * 3 0 + 0 * 3 1 + 2 * 3 2 = 18 Il valore del simbolo moltiplicato per la base, elevato per la posizione che occupano b n-1 x β n-1 + b n-2 x β n-2 + + b 1 x β 1 + b 0 x β 0 + b -1 x β -1 + b -2 x β -2 + + b -m x β -m
Il Sistema di Numerazione Decimale stringa: 2349 rappresenta il numero 2 * 10 3 + 3 * 10 2 + 4* 10 1 + 9 * 10 0 β = 10 Simboli: 0,1,2,3,..,9 Rappresentanti: numeri da 0 a 9 Sistema utilizzato dall'uomo Facilmente intellegibili
Il Sistema di Numerazione Binario stringa: 10010 rappresenta il numero 1 * 2 4 + 0 * 2 3 + 0 * 2 2 + 1 * 2 1 + 0 * 2 0 (= 18) 10 β = 2 Simboli: 0 e 1 Rappresentanti: lo zero e l'uno Sistema utilizzato dal Sistema di Elaborazione Leggibilità scarsa N.B.: Per rappresentare un numero x, sono necessarie x = Γlog 2 (x+1) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 0 1 2 3 4 5 6 7 8 9 10
Il Sistema di Numerazione Ternario stringa: 1210 rappresenta il numero 1 * 3 3 + 2 * 3 2 + 1 * 3 1 + 0 * 3 0 β = 3 Simboli: 0, 1 e 2 Rappresentanti: lo zero, l'uno e il due Sistema poco diffuso Leggibilità scarsa (= 48) 10
Il Sistema di Numerazione Ottale Stringa 534 rappresenta il numero 5 x 8 2 + 3 x 8 1 + 4 x 8 0 (= 348) 10 β = 8 Simboli: 0, 1,, 7 Rappresentanti: numeri dallo zero al sette Sistema utilizzato nei linguaggi come il C Leggibilità scarsa
Il Sistema di Numerazione Esadecimale stringa: C1A0 rappresenta il numero 12 * 16 3 + 1 * 16 2 + 10 * 16 1 + 0 * 16 0 (= 49568) 10 β = 16 Simboli: 0, 1,, 9, A, B, C, D, E, F Rappresentanti: numeri da 1 a 15 Sistema utilizzato da linguaggi di basso livello ( Assembly, C) Leggibilità scarsa 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Il Sistema di Numerazione Sessadecimale β = 60 Sistema utilizzato per misurare: - angoli:, ', - orari: h, min, sec
Rappresentazione dei Numeri nei Sistemi di Teorema di Divisione Euclidea Numerazione Data una β>1, tutti i numeri naturali possono univocamente essere rappresentati in un sistema di numerazione (posizionale) a base β. N.B.: il teorema non è garantito per i numeri frazionari! Es: (1,2) 10 = (1,00100110011...) 2??? (0,1) 3 = (0,3333...) 10??? Data una stringa di n simboli, il numero rappresentato è uguale alla sommatoria di tutti i componenti.
Rappresentazione dei Numeri nei Sistemi di Numerazione Data una stringa di n simboli, il numero rappresentato è uguale alla sommatoria di tutti i componenti. b n... b 3, b 2, b 1, b 0,.b -1, b -2, b -n...b -m N = Σ n b i x β 2 r = -m Es.: β=10 1 5 4, 3 2 b 0 = 4 b -1 = 3 b 1 = 5 b -2 = 2 b 2 b 1 b 0 b -1 b -2 b 2 = 1
Conversione dei Numeri tra Sistemi di Numerazione Sfruttando il Teorema di Divisione Euclidea è possibile passare da un Sistema di Numerazione ad un altro. Conversione da Sistema Decimale a Sistema Binario 124 2 0 6 2 2 0 31 2 1 15 2 1 7 2 1 3 2 1 1 (124, 125) 10 0, 125 x 2 0, 250 x 2 = 0, 500 x 2 = 1, 000 Teorema dell'algebra: Stringa b 3 b 2 b 1 b 0 b 3 * 2 3 + b 2 * 2 2 + b 1 * 2 1 + b 0 * 2 0 2 La parte intera si divide La parte decimale si moltiplica Teorema dell'algebra: La parte intera si toglie ogni volta Si termina quando la parte frazionaria è 0 = (1111100,001) 2
Conversione dei Numeri tra Sistemi di Numerazione Conversione da Sistema Binario a Sistema Decimale Si fa riferimento alla definizione di Sistema di Numerazione. (10110,1101) 2 = =(1 * 2 4 + 0 * 2 3 + 1 * 2 2 + 1 * 2 1 + 0 * 2 0 + 1 * 2-1 + 1 * 2-2 + 0 * 2-3 + 1 * 2-4 ) 10 =(228125) 10
Conversione dei Numeri tra Sistemi di Numerazione Conversione da Sistema Binario a Sistema Esadecimale Si passa direttamente al raggruppamento in gruppi di 4 bit (cifre binarie) Stringa: b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 Es.: (0011 1101) 2 b 7 * 2 7 + b 6 * 2 6 + b 5 * 2 5 + b 4 * 2 4 + b 3 * 2 3 + b 2 * 2 2 + b 1 * 2 1 + b 0 * 2 0 2 4 (b7* 2 3 + b 6 * 2 2 + b 5 * 2 1 + b 4 * 2 0 ) =( 3 D ) 16 16 (b7* 2 3 + b 6 * 2 2 + b 5 * 2 1 + b 4 * 2 0 ) + + b 3 * 2 3 + b 2 * 2 2 + b 1 * 2 1 + b 0 * 2 0 16 * x 1 + x 0 16 * x 1 + 16 x 0
Conversione dei Numeri tra Sistemi di Numerazione Conversione da Sistema Esadecimale a Sistema Binario Si passa direttamente al raggruppamento in gruppi di 4 bit Es.: (A B 8 1) 16 ( 1010 1011 1000 0001 ) 2
Conversione dei Numeri tra Sistemi di Numerazione Conversione da Sistema Decimale a Sistema Esadecimale Si divide per 16. Stringa b 3 b 2 b 1 b 0 (123453, 23) 10 b 3 * 16 3 + b 2 * 16 2 + b 1 * 16 1 + b 0 * 16 0 16 D 123453 16 13 7715 16 3 3 482 16 2 2 30 16 E 14 1 1 =(1E23D, 3AE147) 16 3 A E 1 4 7 0, 23 x 16 = 3, 68 x 16 0, 68 x 16 = 10, 88 x 16 0, 88 x 16 = 14, 08 x 16 0, 08 x 16 = 1, 28 x 16 0, 28 x 16 = 4, 48 x 16 0, 48 x 16 = 7, 68 x 16 0, 68... La parte intera si divide La parte decimale si moltiplica Teorema dell'algebra: La parte intera si toglie ogni volta Si termina quando la parte frazionaria è 0
Conversione dei Numeri tra Sistemi di Numerazione Conversione da Sistema Esadecimale a Sistema Decimale Si moltiplica per 16. (1234) 16 = = ( 1 * 16 3 + 2 * 16 2 + 3 * 16 1 + 4 * 16 0 ) 10 =(4660) 10
Operazioni sui Sistemi di Numerazione Somma Sottrazione 1101,11 + 110,00 = 10011,11 CFA0 + 2D03 = FCA3 1101,11-110,00 = 111,11 CFA0-2D03 = A29D Moltiplicazione 1100 x 11 = 1100 + 1100 = 100100 Divisione 11011 10 10 1101 011 1
FINE Grazie per l'attenzione! Dott.ssa Isabella D'Alba - Corso PENTEST MIND PROJECT 2016