Massimo Sartori, MSc (PhD Student) -- Massimo Sartori, MSc (PhD Student) Intelligent Autonomous Systems Laboratory (IAS-LAb) Department of Information Engineering, University of Padua Via dei Gradenigo, 35131-IT Tel. +39-049-827-7833 mail: sartori1@dei.unipd.it 1
Outline Integrazione Concetti di Java Notazioni Posizionali Sistema Decimale Sistema Binario Cenni di Algebra Booleana Sistema Esadecimale Conversioni da base generica a base 10 Conversioni da base 10 a base generica Rappresentazioni dei numeri nei calcolatori Rappresentazione di informazioni non numeriche nei calcolatori 2
Java Programming Language public class BankAccount{ public BankAccount(){...} public void deposit(double amount){...} public withdraw(double amount){...} public double getBalance(){...} public static void main(String[] args){ ... }
Java Programming Language public class BankAccount{ public BankAccount(){...} public void deposit(double amount){...} public withdraw(double amount){...} public double getBalance(){...} } public class BankAccountTester{ public static void main(String[] args){ ... BankAccount b = new .... } javac BankAccount.java BankAccountTester.java java BankAccountTester 4
Java Programming Language public class BankAccount{ public BankAccount(){...} public void deposit(double amount){...} public withdraw(double amount){...} public double getBalance(){...} } public class BankAccountTester{ public static void main(String[] args){ ... BankAccount b = new .... } Current Path javac -cp BankAccountTester.java java BankAccountTester 5
Java Programming Language a%b boolean operator, returns 0 or 1 a%b == 1 if a is divisible by b a%b == 0 if a is NOT divisible by b IEEEreminder(x,y) not a boolean operator returns the reminder of the division: x/y import java.lang.Math; 6
Notazioni Posizionali
Sistema Numerico Binario Sistema in base-2: rappresentazione di valori numerici usando 0 e 1 Anche per rappresentare: Immagini, Suoni, Caratteri testuali, ecc. Usato in tutti i Computer e apparecchi elettronici Tutti i dati presenti su di un PC sono rappresentati in Binario
Sistema Numerico Decimale Noi tutti conosciamo e utilizziamo il sistema numerico decimale (base-10) Valori numerici rappresentati per mezzo di dieci “simboli”: alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} 2095.42 0.034 10234.666667 1236 n, k ≥ 0 alfabeto base virgola posizione 9
Notazione Posizionale in Base-10 alfabeto b = base-10 10
Notazione Posizionale in Base-2 base b = 2 alfabeto = {0, 1} bit n, b ≥ 0, alfabeto, Conversione da Binario a Decimale 11
Sistema Numerico Binario: Perché? Importante perché tutti gli strumenti elettronici di nuova generazione rappresentano le informazioni sottoforma di numeri binari: Macchine fotografiche e telecamere digitali PC Console Telefoni Cellulari Ricevitori Satellitari Digitali Televisioni Digitali (Plasma, LCD, HD) Lettori Mp3 Perché è più facile progettare un dispositivo elettronico capace di riconoscere solo due stati (0, 1) che dieci (0, 1, ... 9). Tali circuiti si chiamano Circuiti Digitali Un circuito digitale rappresenta il bit 0 con un valore di tensione negativo (- 5V) il bit 1 con un valore di tensione positivo (+ 5V) esempio: macchine fotografiche analogiche/digitali 12
Algebra Booleana I numeri binari sono stati resi “famosi” da George Boole (matematico britannico) che nel 1830 definì un’intera algebra basata su tali numeri detta Algebra Booleana. Tale algebra ha portato poi alla realizzazione di circuiti digitali e quindi all’evoluzione tecnologica attuale. Aritmetica Binaria: A B A+B riporto AB A-B prestito 00 0 0 00 0 0 01 1 0 01 1 1 10 1 0 10 1 0 11 0 1 11 0 0 esempio: macchine fotografiche analogiche/digitali 0011001 : 0101 = 00101 101 00101 000 0101 x 0101 0000101 0000 0011001 13
Notazione Posizionale in Base-16 base b = 16 alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} La notazione esadecimale consente di rappresentare le informazioni binarie in modo convenientemente compatto. Utilizzata per riferirsi alle locazioni di memoria di un calcolatore Conversione da Esadecimale a Decimale 14
Notazione Posizionale in Base-16 base b = 16 alfabeto = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} La notazione esadecimale consente di rappresentare le informazioni binarie in modo convenientemente compatto. 7 B 9 1 15
Notazione Posizionale in Base-16 Perché raggruppamento di quattro bit? 0 0 1 1 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 16
Notazione Posizionale in Base-p base b = p alfabeto = {0, 1, 2, ..., p-1} Conversione dalla base p alla base 10: 17
Conversioni da Base Decimale a Base p 18
Conversione di Interi da Base-10 a Base-p 19
Esempio di Conversione da Base-10 a Base-2 Conversione del numero N=87 dalla base-10 alla base-2 6+1 = Numero di bit necessari per codificare N 0 000000 . 63 111111 log-2(87)=6.4 0/1 0/1 0/1 0/1 0/1 0/1 64 numeri 2 2 2 2 2 2 20
Esempio di Conversione da Base-10 a Base-2 Conversione del numero N=87 dalla base-10 alla base-2 d+1 = Numero di bit necessari per codificare N 0 000000 . 63 111111 log-2(87)=6.4 0 0000000 . 87 1010111 127 1111111 64 numeri 128 numeri 21
Esempio di Conversione da Base-10 a Base-2 Conversione del numero N=87 dalla base-10 alla base-2 for i=0 to 6 i=0, N=87 1 87 mod 2 43 87 div 2 i=1, N=43 1 43 mod 2 21 43 div 2 i=2, N=21 1 21 mod 2 10 21 div 2 i=3, N=10 0 10 mod 2 5 10 div2 i=4, N=5 1 5 mod 2 2 5 div 2 i=5, N=2 0 2 mod 2 1 2 div 2 i=6, N=1 1 1 mod 2 0 1 div 2 log-2(87)=6.4 22
Conversione di Frazionari da Base-10 a Base-p 23
Conversione di Frazionari da Base-10 a Base-p alfabeto = {0, 1, 2, ..., p-1} 24
Conversione di Frazionari da Base-10 a Base-p Parte Intera Parte Frazionaria Parte da calcolare 25
Conversione di Frazionari da Base-10 a Base-p Parte Intera Parte Frazionaria 26
Esempio Conversione da Base-10 a Base-2 Conversione del numero N=0.625 dalla base-10 alla base-2 27
Rappresentazione dei Numeri Interi nei Calcolatori 28
Rappresentazione dei Numeri Interi Relativi Le informazioni, numeriche o non, sono rappresentate in un elaboratore mediante elementi caratterizzati da una grandezza fisica (di solito di natura elettrica) che può assumere solo due valori (stati) che corrispondono alle cifre binarie 0 e 1. Si usa dire che ciascuno di questi elementi contiene un “bit”. Utilizzando sequenze di bit si possono rappresentare i numeri naturali (limitazioni dovute al numero finito di cifre). I numeri interi positivi in un calcolatore sono rappresentati con 16 o 32 bit. Corrisponde al tipo Int di Java 29
Interi Negativi: Rappresentazione in Ampiezza e Segno Metodo 1: Ampiezza e Segno Metodo 2: Complemento a Uno Metodo 3: Complemento a Due 30
Interi Negativi: Rappresentazione in Ampiezza e Segno Tale metodo utilizza il primo bit (quello più significativo) per indicare il segno. 0 segno + 1 segno - 31
Interi Negativi: Eccesso P Il numero relativo N rappresentato tramite la notazione binaria di N + P, dove M = numero di bit usati nella rappresentazione Esempio: M=4, P=8 il valore del numero rappresentato si ottiene sottraendo P al valore che si otterrebbe interpretando la notazione come rappresentativa di un numero naturale. dissimmetria 32
Interi Negativi: Complemento a uno 33
Interi Negativi: Complemento a due Metodo più diffuso La rappresentazione degli interi positivi corrisponde con quella dei primi numeri naturali Quella dei numeri negativi si ottiene aggiungendo una unità al complemento a uno. 34
Interi Negativi: Complemento a due Complemento a uno E’ il metodo più diffuso 35
Interi Negativi: Complemento a due Svantaggi: dissimetria del numero negativo in più Vantaggi: rappresentazione unica dello 0 struttura ciclica: aggiungendo una unità al massimo numero rappresentabile (+7) si ootiene il minimo (-8) operazioni aritmetiche coi numeri negativi utilizzando le stesse regole dei numeri positivi considero negativi e positivi unitamente 36
Interi Negativi: Complemento a due Vantaggi: operazioni aritmetiche coi numeri negativi utilizzando le stesse regole dei numeri positivi considero negativi e positivi unitamente 37
Interi Negativi: Overflow nel Complemento a due Il fenomeno di overflow (trasbordo) indica che il numero di bit a disposizione della rappresentazione non è sufficiente per rappresentare il risultato della somma corrente. si ha overflow se e solo se esiste un solo riporto sulle due colonne più significative Overvlow Overvlow 1 I riporti che si possono verificare a sinistra del bit di segno vanno ignorati purché si verifichi anche un riporto nel bit di segno stesso. Riporto a sinistra del bit di segno senza riporto nel bit di segno Riporto solo nel bit di segno e non a sinistra 1 1 Ok 38
Rappresentazione dei Numeri non Interi nei Calcolatori 39
Rappresentazione Fixed Point (Virgola Fissa) Viene definito: il numero di bit per la rappresentazione (16 o 32) la posizione del punto che rimane fissa parte intera algoritmo conversione da base 10 a base 2 di numeri interi parte frazionaria algoritmo conversione da base 10 a base 2 di numeri interi 40
Rappresentazione Floating Point (Virgola Mobile) metodo di rappresentazione dei numeri razionali in base-2, metodo di approssimazione dei numeri reali in base-2, metodo utilizzato dai processori per compiere operazioni matematiche in base-2, floating point posso specificare la posizione del pumto di separazione decimale mediante il valore di un esponente numero di cifre dopo la virgola non fisso. notazione analoga alla notazione scientifica: Floating Point Unit deve essere presente all’interno del processore. 41
Rappresentazione Floating Point (Virgola Mobile) Vantaggi Floating Point rispetto a Fixed Point: può supportare un ampio numero di valori e quindi di dati Esempio: Fixed Point con 7 cifre decimali e virgola dopo la quinta cifra: 00000.00 00034.00 12345.43 99999.99 Floating Point con 7 cifre decimali 0.000001234567 0.000000 1.638956 127.7836 9999999.0 999999900000000.0 Svantaggi Floating Point rispetto a Fixed Point: c’è il bisogno di più spazio in memoria per memorizzare un numero floating point 42
Rappresentazione Floating Point nel Sistema Binario Nel sistema binario conviene usare come fattore di scala una potenza di due poiché in tal caso l’esponente indica direttamente il numero di posizioni di cui il punto binario va spostato: Rappresentazione floating-point binaria del numero R (base-10): Ricondurlo nella forma: Rappresentare separatamente i due numeri M ed E in binario. NOTA: E (esponente o caratteristica) numero intero relativo solitamente rappresentato secondo la convenzione eccesso-P, M (mantissa) numero razionale con una parte intera e una frazionaria rappresentato in virgola fissa e in ampiezza e segno 43
Rappresentazione Floating Point (Virgola Mobile) Inizio anni 80 non esisteva una convenzione universale sul floating-point: Calcolatori IBM: E 7 bit riferito alla base b=16 Calcolatori DIGITAL: E 8 bit riferito alla base b=2 1985 Standard IEEE 754 31 30 23 22 0 s e m esponente E=e-127 mantissa Parte frazionaria di M segno della mantissa ( 0= +, 1= - ) 44
Rappresentazione Floating Point (Virgola Mobile) virgola fissa col punto decimale implicitamente assunto alla destra del bit più significativo normalizzata parte intera costituita da un unico bit pari a 1 (che non viene rappresentato) E: assume valori tra -127 e +128 è riferito alla base 2 31 30 23 22 0 s e m esponente E=e-127 mantissa Parte frazionaria di M segno della mantissa ( 0= +, 1= - ) 45
Rappresentazione Floating Point (Virgola Mobile) Ricondurlo nella forma: Rappresentare separatamente i due numeri M ed E. mantissa normalizzata!! 31 30 23 22 0 0111101 00000000000000000000000 Esponente: -5 in notazione eccesso 127 Mantissa: hidden bit:1, tutti gli altri a 0 Bit di segno: 0 46
Rappresentazione Floating Point (Virgola Mobile) 11000011110100000000000000000000 1 10000111 10100000000000000000000 Esponente: in notazione eccesso 127 Mantissa Bit di segno E = e-127 = M = S = 1 negativo 47
Intervallo Floating Point (Virgola Mobile) Qual è il numero con modulo più grande rappresentabile? 48
Intervallo Floating Point (Virgola Mobile) Qual è il numero con modulo più piccolo rappresentabile? ATTENZIONE: Overflow: Se il risultato di un’operazione è in modulo più grande del numero massimo rappresentabile Underflow: Se il risultato di un operazione è compreso tra zero e il minimo numero rappresentabile La distribuzione dei numeri rappresentabili non è uniforme; più densa vicino allo zero, rarefacendosi con l’aumentare del valore assoluto. 49
Floating Point (Virgola Mobile) Single Precision: E: 8 bit (eccesso 127), M: 23 bit (normalizzata), S=1 bit 32 bit Double Precision: E: 11 bit (eccesso 1023), M: 52 bit (normalizzata), S=1 bit 64 bit Quadruple Precision: E: 15 bit (eccesso 32767), M: 112 bit (normalizzata), S=1 bit 128 bit Double precision numeri più grandi e più piccoli e distribuzione migliore 50
Floating Point (Virgola Mobile) Single Precision: E: 8 bit (eccesso 127), M: 23 bit (normalizzata), S=1 bit 32 bit Double Precision: E: 11 bit (eccesso 1023), M: 52 bit (normalizzata), S=1 bit 64 bit Quadruple Precision: E: 15 bit (eccesso 32767), M: 112 bit (normalizzata), S=1 bit 128 bit Double precision numeri più grandi e più piccoli e distribuzione migliore 51
Rappresentazione delle Informazioni non Numeriche Double precision numeri più grandi e più piccoli e distribuzione migliore 52
Rappresentazione delle Informazioni non Numeriche Anche le informazioni non numeriche vengono rappresentate per mezzo di bit Avendo a disposizione N bit si possono rappresentare simboli diversi Rappresentazione di Caratteri: Codice ASCII Standard Universalmente Utilizzato Codifica a 7 bit codici: caratteri alfabeto maiuscoli e minuscoli, cifre numeriche, segni di interpunzione, operatori aritmetici, caratteri speciali ($,%,&,#, etc.) Codici ASCII memorizzati in supporti fisici (memorie, hard-disks) da 8 bit (byte) e occupano le 7 posizioni meno significative. L’ottavo bit bit di parità Trasmissione di informazioni introduzione di errori controllo in ricezione Double precision numeri più grandi e più piccoli e distribuzione migliore 53
Rappresentazione delle Informazioni non Numeriche Codifica ASCII estesa: viene utilizzato un byte intero (8 bit) no bit di parità codici da 0 a 127 coincidono con la codifica non estesa caratteri da 128 a 255: variabili variamente accettate, simboli altri alfabeti alcuni simboli matematici, simboli grafici Double precision numeri più grandi e più piccoli e distribuzione migliore 54
Rappresentazione delle Informazioni non Numeriche Sistema di Acquisizione x(t) Double precision numeri più grandi e più piccoli e distribuzione migliore 5, 10, 16.33, 14.367, … Campionamento di x(t) t 55
Nota sulle Unità di Misura Double precision numeri più grandi e più piccoli e distribuzione migliore 56
Thank You robotics.dei.unipd.it