Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Fondamenti di informatica, Appunti di Fondamenti di informatica

Sistemi di numerazione: basi, conversioni, binario, esadecimale, byte. Interi: modulo e segno, complemento a 1 e 2, overflow. Aritmetica: addizione, sottrazione, moltiplicazione, divisione. Floating‑point: IEEE 754, bias, normalizzazione, NaN, infiniti. ASCII. Logica digitale: porte, algebra di Boole, Karnaugh, reti combinatorie e sequenziali, MUX/DEC. CPU: registri, bus, ciclo istruzione, ALU, cache.

Tipologia: Appunti

2025/2026

Caricato il 09/01/2026

francesco-lomartire-3
francesco-lomartire-3 🇮🇹

1 documento

1 / 80

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
Sistemi di numerazione posizionale
Numeri interi senza segno
n
sei
c
definisce il numero di cifre diverse nel sistema di numerazione
se B>10 occorre introdurre B-10 simboli in aggiunta alle cifre decimali
Un numero intero N si rappresenta con
cn è la cifra più significativa, c0 la meno significativa
Un numero frazionario N’ si rappresenta come
Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a B -1
(B numeri distinti)
Esempio: base 10
Esempio: base 2
La base 2 è la più piccola per un sistema di numerazione
Forma polinomia
elemento base con cui si rappresentano i dati nei
calcolatori
Si utilizzano sempre dimensioni multiple (di potenze
del 2) del byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte
(64 bit)…
KB (Kilobyte), MB (Megabyte), GB (Gigabyte)
insieme di 8 bit si rappresentano i numeri interi fra 0 e 2^8 -1 = 255
Base
byte
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50

Anteprima parziale del testo

Scarica Fondamenti di informatica e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

Sistemi di^ numerazione^ posizionale

Numeri interi senza segno

n sei c definisce il numero di cifre diverse nel sistema di numerazione se B>10 occorre introdurre B-10 simboli in aggiunta alle cifre decimali Un numero intero N si rappresenta con cn è la cifra più significativa, c0 la meno significativa Un numero frazionario N’ si rappresenta come Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a B - (B numeri distinti) Esempio: base 10 Esempio: base 2 La base 2 è la più piccola per un sistema di numerazione Forma polinomia

  • elemento base con cui si rappresentano i dati nei calcolatori
  • Si utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)… KB (Kilobyte), MB (Megabyte), GB (Gigabyte) insieme di 8 bit si rappresentano i numeri interi fra 0 e 2^8 -1 = 255

Base

byte

a decimale a^ binario a (^) binario a (^) decimale

sistema esadecimale

a (^) binario a^ esadecimale Si divide ripetutamente il numero intero decimale per 2 fino ad ottenere un quoziente nullo; le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è l’ultimo resto

  • Si moltiplica ripetutamente il numero frazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte
  • le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione espansione esplicita in potenze del 2 si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo corrispondenza in decimale delle cifre oltre il 9 è Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F Una cifra esadecimale corrisponde a 4 bit Si possono rappresentare numeri binari lunghi con poche cifre (1/4) La conversione da binario ad esadecimale è immediata, raggruppando le cifre binarie in gruppi di 4 (da destra) e sostituendole con le cifre esadecimali secondo la tabella precedente

Numeri interi

Numeri razionali

Addizione binaria Il complemento a 2 si calcola… Effettuando il complemento a 1 del numero di partenza (negazione di ogni cifra): si trasforma ogni 0 in 1 e ogni 1 in 0 Aggiungendo 1 al numero ottenuto Oppure: a partire da destra, lasciando invariate tutte le cifre fino al primo 1 compreso, quindi invertendo il valore delle rimanenti

  • I numeri positivi sono rappresentati (come) in modulo e segno
  • I numeri negativi sono rappresentati in complemento a 2 Þ la cifra più significativa ha sempre valore 1
  • Lo zero è rappresentato come numero positivo (con una sequenza di n zeri)
  • Il campo dei numeri rappresentabili varia da -2 n-1 a +2n-1- Interi in complemento a 2 regole per l’addizione di due bit Per sommare due numeri occorre fornire le loro rappresentazioni ad un sommatore su n bit e prendere il risultato ignorando il riporto in uscita dalla posizione del bit più significativo La somma sarà il valore algebrico corretto del risultato, già rappresentato in complemento a 2, sempre che sia compresa nell’intervallo di rappresentazione dei numeri

sottrazione binaria Quando il risultato non si trova nell’insieme dei numeri rappresentabili si dice che si è verificato un overflow aritmetico Se entrambi gli addendi hanno lo stesso segno si verifica un overflow quando il segno della somma non è concorde con il segno dei numeri Un calcolatore deve essere sempre in grado di rilevare un overflow Di solito si usa come indicatore un flag ed è anche possibile che tale flag possa generare un interrupt quando un’istruzione di somma o di sottrazione genera un overflow Oltre ai bit CF (Carry Flag) e ZF (Zero Flag) vengono prodotti due ulteriori bit noti come OF (Overflow Flag) e SF (Sign Flag) regole per la sottrazione di due bit La sottrazione può divenire complicata: quando si ha una richiesta (di un prestito) sulla cifra precedente a sinistra, che è uno 0, l’operazione si propaga a sinistra fino alla prima cifra ad 1 del sottraendo Per sottrarre due numeri bisogna costruire il complemento a 2 del numero da sottrarre e poi effettuare la somma Il risultato sarà il valore algebrico corretto, già rappresentato in complemento a 2, sempre che sia compreso nell’intervallo di rappresentazione dei numeri La somma di numeri con segno diverso non può provocare un overflow perché il valore assoluto della somma è sempre minore al valore di uno dei due addendi Si può verificare overflow quando si sommano due numeri che hanno lo stesso segno; il segnale di riporto in uscita non è sufficiente per indicare l’overflow di una somma di numeri con segno La somma di numeri con segno diverso non può provocare un overflow perché il valore assoluto della somma è sempre minore al valore di uno dei due addendi Si può verificare overflow quando si sommano due numeri che hanno lo stesso segno; il segnale di riporto in uscita non è sufficiente per indicare l’overflow di una somma di numeri con segno

overflow Rappresentazione grafica dei numeri relativi si ha quando il risultato di un’operazione non è rappresentabile correttamente con n bit

  • La somma di numeri con segno diverso non può provocare un overflow, perché il valore assoluto della somma è minore al valore di uno dei due addendi
  • Si può verificare overflow solo quando si sommano numeri con lo stesso segno
  • Il segnale di riporto in uscita non è sufficiente per indicare l’overflow di una somma di numeri con segno
  • Se si genera un riporto esso viene spostato di una posizione a sinistra
  • Nell’aritmetica in complemento a 1 un riporto generato dalla somma dei bit più a sinistra viene sommato al bit più a destra (end-round)
  • Nell’aritmetica in complemento a 2 un riporto generato dalla somma dei bit più a sinistra viene semplicemente eliminato Quando si genera un overflow esistono tre tecniche: 1. aggiornare un bit di segnalazione 2. generare un’eccezione 3. non fare nulla Per evitare l’overflow occorre aumentare il numero di bit utilizzati per rappresentare gli operandi C’è overflow se c’è riporto al di fuori del bit di segno e non sul bit di segno, o se c’è riporto sul bit di segno, ma non al di fuori

rappresentazione dei numeri^ reali rappresentazione in (^) virgolafissa appresentazione in virgola mobile La posizione della virgola è stabilita a priori, indipendentemente del valore del numero memorizzato e mantenuta costante nel corso dei calcoli Lo svolgimento delle operazioni deve essere conforme ai vincoli imposti dalla posizione assunta Qualora questa sia assunta a destra del LSB, è preclusa la possibilità di rappresentare i numeri frazionari (aritmetica intera); qualora questa sia assunta tra MSB e LSB, si parla di aritmetica frazionaria Un numero può essere pensato come intero con associato un fattore di normalizzazione che definisce la posizione della virgola; tale fattore non viene memorizzato insieme al numero singola precisione —> una sola parola di memoria doppia precisione —>due parole contigue di memoria È stata introdotta per superare le rigidità di formato imposte dalla rappresentazione in virgola fissa e per rappresentare un ampio intervallo di valori con un numero relativamente piccolo di bit I numeri si esprimono in formato simile alla notazione scientifica Una ulteriore classificazione può essere fatta in base al numero di locazioni di memoria assegnato per rappresentare l’insieme dei numeri considerati Quando si considera la rappresentazione dei numeri reali all’interno dei sistemi di elaborazione è necessario definire le modalità con cui vengono memorizzati Esistono due formati:

  • rappresentazione in virgola fissa (fixed-point)
  • rappresentazione in virgola mobile (floating-point)

Poiché tutti i numeri rappresentati hanno la stessa base, per identificare ciascun numero è sufficiente memorizzare la mantissa e l’esponente Ogni numero è rappresentabile dalla coppia (m, e)

99 99 (^99) μ 99 appresentazione in (^) virgola mobile polarizzata Le ultime 23 cifre rappresentano la mantissa e siccome si considerano numeri binari normalizzati, la prima cifra della mantissa è sempre uguale a 1 Questo bit non viene rappresentato esplicitamente, ma si immagina che si trovi nella posizione alla sinistra della virgola binaria L’insieme dei numeri reali si può suddividere in 7 zone:

  1. numeri molto negativi minori di -0.999 10
  2. numeri negativi tra -0.999 10 e -0.100 10
  3. piccoli numeri negativi con valori tra 0 e -0.100 10
  4. zero
  5. piccoli numeri positivi con valori inferiori 0.100 10
  6. numeri positivi tra 0.999 10 e 0.100 10
  7. numeri molto positivi maggiori di 0.999 10 Non viene memorizzato alcun segno per l’esponente Nella rappresentazione in virgola mobile a 32 bit , il valore che viene memorizzato nel campo dell’esponente è un intero senza segno E' = E + 127
  • Tale formato viene chiamato rappresentazione in eccesso 127 o rappresentazione polarizzata dove il fattore di polarizzazione è 127

L'aritmetica

floating point^

addizione

I valori limite di E', cioè 0 e 255, sono utilizzati per indicare i valori in virgola mobile che corrispondono rispettivamente a 0 e a infinito E' è compreso tra 0 e 255 (0 < E' < 255) e questo vuol dire che l’esponente effettivo E è compreso tra –126 e 127 (-126 £ E £ 127) Se ci si riferisce alla rappresentazione polarizzata può succedere che con il procedere dei calcoli sia generato un numero che esce fuori dal campo dei valori rappresentabili Questo vuol dire che richiede un esponente minore di –126 o maggiore di +127; nel primo caso si dice che si è generato un underflow, mentre nel secondo si dice che si è generato overflow In entrambi i casi si tratta di una eccezione aritmetica e la procedura di servizio delle interruzioni provvederà ad eseguire le azioni specificate dall’utente o dalle convenzioni del sistema Metodo per il calcolo dell’addizione

  1. Se le caratteristiche dei numeri sono diverse, si considera il numero con caratteristica minore e… 1.1 Si trasla la mantissa di un posto a destra 1.2 Si incrementa la caratteristica di 1, fino a quando le due caratteristiche sono uguali, e corrispondono alla caratteristica del risultato
  2. La mantissa del risultato è ottenuta dalla somma delle due mantisse
  3. Se l’addizione comporta un riporto oltre la cifra più significativa, si trasla la mantissa del risultato e si incrementa la caratteristica di 1

YAN standard IEEE^754 odifica del^ carattere^ alfabetici Il fatto che la parte intera della mantissa sia sempre considerata pari ad 1 impedisce di rappresentare il valore zero in modo esatto e, pertanto, lo standard stabilisce che quando l’esponente di un numero floating point è 0, il bit iniziale della mantissa si pone pari a 0 ed in questo modo si rappresenta esattamente lo zero Un altro speciale tipo di formato è il NaN (Not a Number) che viene utilizzato per segnalare condizioni di errore dovute ad operazioni non permesse (overflow, underflow, divisione per zero, radicando negativo, etc) I NaN sono rappresentati da un esponente le cui cifre sono tutte pari ad 1, a meno che il campo frazionario non sia 0, perché in questo caso il numero rappresenta il valore infinitoI NaN sono rappresentati da un esponente le cui cifre sono tutte pari ad 1, a meno che il campo frazionario non sia 0, perché in questo caso il numero rappresenta il valore infinito

  • utilizza l’1 implicito
  • esponente polarizzato (127 in singola precisione e 1023 in doppia)
  • rappresentazioni predefinite per zero, ± e NaN
  • i numeri denormalizzati non hanno l’1 implicito e sono rappresentati con l’esponente con tutti 0 ed una mantissa diversa da 0
  • Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli)
  • Gli elaboratori elettronici trattano numeri
  • Si codificano i caratteri e i simboli per mezzo di numeri
  • Per poter scambiare dati (testi) in modo corretto, occorre definire uno standard di. codifica

aritmetica (^) degli elaboratori Quando si scambiano dati, deve essere noto il tipo di codifica utilizzato Lo standard di codifica più diffuso è il codice ASCII (American Standard Code for Information Interchange), nato a 7 bit ed esteso successivamente a 8 Stabilisce una corrispondenza biunivoca fra stringhe binarie e l’insieme dei caratteri generalmente formato dalle 26 lettere maiuscole, da quelle minuscole, dalle 10 cifre decimali, dai segni di interpunzione e da alcuni caratteri di controllo (spazio, ritorno carrello, fine riga, nuova pagina, beep, ecc.) I caratteri codificati permettono lo scambio di informazioni tra calcolatore e terminali (video, tastiera, stampanti, …) La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (ae, ã, ë, è,…)

  • Rappresentazione binaria dei numeri
  • Rango finito dei numeri rappresentabili
  • Precisione finita dei numeri
  • Operazioni espresse in termini di operazioni più semplici
  • L’aritmetica “interna” degli elaboratori differisce notevolmente dall’aritmetica classica
  • Sebbene le stesse operazioni possano essere realizzate secondo modalità diverse su elaboratori diversi, si riscontrano alcune caratteristiche comuni:

- descrizione funzionale (comportamentale): comportamento del sistema in termini **di ingressi ed uscite

  • descrizione strutturale (architetturale): descrizione in termini primitivi che lo** **compongono
  • descrizione fisica (implementazione): effettiva realizzazione del sistema**

analisi:

**- permette di risalire a cosa fa il sistema data la sua struttura

  • relazione causa-effetto tra ingressi ed uscite**

sintesi :

**- permette di formalizzare una possibile struttura a partire dal suo comportamento

  • non è unica e dipende dalle prestazioni volute Un calcolatore può essere definito a diversi livelli di astrazione che indicano il grado di dettaglio con cui si descrive un sistema, mascherando tutto quello che è ininfluente a tale livello definisce i componenti e la tecnologia della effettiva realizzazione definisce il calcolatore in termini di macchina virtuale nascondendo ogni dettaglio implementativo definisce il linguaggio macchina definisce il calcolatore in termini di risorse interne (ALU, registri, unità di controllo e possibile microprogramma interno) blocchi logici necessari I sistemi digitali sono tutti quegli apparati al cui interno le grandezze fisiche impiegate come segnali sono vincolate ad assumere solo valori discreti**

I sistemi binari sono quei sistemi digitali in cui i segnali sono limitati a due valori di regime Un sistema digitale è un circuito costituito da componenti elementari e dai collegamenti che li interconnettono I componenti elementari possono essere di due tipi: porte o elementi di memoria Risolvere un problema di analisi di un sistema digitale consiste nell'individuare le relazioni di causa/effetto tra i segnali di ingresso e uscita attraverso l'esame di una rappresentazione schematica dei suoi componenti elementari e dei collegamenti Risolvere un problema di sintesi consiste nella selezione dei circuiti digitali e delle interconnessioni necessarie per realizzare un nuovo e più complesso circuito digitale di cui è assegnata la specifica funzionale

Vantaggi di un sistema digitale

**- riproducibilità del risultato

  • facilità di progetto
  • flessibilità
  • programmabilità
  • velocità di funzionamento (dell’ordine dei nsec)
  • economia Per poter affrontare in modo sistematico lo studio dei sistemi di calcolo, è necessario disporre di un apparato teorico-formale mediante il quale lavorare sulle grandezze binarie Lo strumento formale si chiama “Algebra di Boole” e venne introdotta nel 1874 da George Boole per fornire una rappresentazione algebrica della logica mostrando così le affinità profonde esistenti tra la logica e l’usuale algebra Per questo motivo i circuiti elettronici che lavoro su valori binari assumono il nome di “ circuiti logici” o “porte logiche” L’algebra di Boole è rimasta pressoché ignorata per oltre 80 anni, cioè fino al 1937, quando lo scienziato americano Claude Elwood Shannon propose per primo di applicarla all’analisi e alla sintesi di circuiti a relè che sono caratterizzati dai due stati di funzionamento “aperto” e “chiuso” L'algebra booleana a due valori è la base matematica della analisi e progetto di circuiti di commutazione che realizzano i sistemi digitali Un interruttore comandato da un segnale elettrico Quando la corrente fluisce nel circuito, l’elettromagnete attira una lamella del contatto e l’interruttore rimane aperto Se non circola corrente, l’interruttore rimane chiuso**

Si definisce l’operatore di negazione (NOT): l’operatore inverte il valore della costante su cui opera La negazione di una variabile x è Per gli operatori AND e OR valgono le seguenti proprietà: commutativa associativa distributiva del prodotto rispetto alla somma Per l’operatore NOT si provano le seguenti identità:

**- I circuiti elettronici digitali sono costituiti da transistor

  • Un transistor permette di far passare o non far passare elettroni
  • Il passaggio di elettroni è un segnale elettronico binario (1 se passano elettroni, 0 se** **non passano)
  • La caratteristica che distingue gli interruttori elettronici dai più comuni** interruttori elettrici è che essi sono comandati da un segnale elettronico binario e **non dall'intervento umano
  • Questo significa che è possibile usare il segnale elettronico di un transistor per** comandare un altro transistor e così ottenere un nuovo segnale elettronico che, a sua **volta, può comandare un altro transistor e così via
  • L'insieme di questi interruttori elettronici che si comandano a vicenda viene detto** **circuito elettronico
  • Tutta la logica digitale si basa sul fatto che si può far funzionare un transistor** **come un interruttore binario molto veloce
  • Le reti logiche elaborano informazione rappresentata da segnali digitali e sono gli** **elementi architettonici dei calcolatori
  • L’algebra di Boole costituisce il mezzo matematico fondamentale per descrivere il** **funzionamento di queste reti che elaborano segnali binari
  • L’uscita di un elemento può essere collegata ad un ingresso di un altro elemento per** **realizzare una rete logica
  • Una rete logica ha un insieme di segnali booleani di ingresso e un insieme di** **segnali booleani di uscita
  • I calcolatori elettronici sono realizzati utilizzando milioni di componenti** elementari AND/OR/NOT

Rete logica combinatoria: rete digitale in cui i valori delle uscite in un certo istante

di tempo dipendono solo dai valori assunti dagli ingressi nel medesimo istante e non dai valori precedenti (rete priva di memoria)

Rete sequenziale: rete digitale in cui i valori delle uscite dipendono anche dai

valori precedenti degli ingressi (reti con memoria) I sistemi digitali si possono costruire con pochi elementi primitivi combinandoli in innumerevoli modi In un circuito digitale ci sono solo due valori logici e sono presenti piccoli dispositivi elettronici, chiamati porte, che possono calcolare alcune funzioni di questi segnali a due valori Le porte formano la base hardware su cui vengono costruiti i circuiti digitali Tutta la logica digitale si basa sul fatto che si può far funzionare un transistor come un interruttore binario molto veloce Gran parte dell’importanza dell’algebra di Boole deriva dal fatto che essa trova applicazione nella teoria dei circuiti elettrici, in quanto è possibile realizzare dei dispositivi fisici abbastanza semplici che funzionano secondo le sue regole Tali dispositivi, che si chiamano porte logiche o gate, sono la forma elettronica degli operatori dell’algebra di Boole Rricevono in ingresso segnali elettrici digitali (tensioni alte o basse) e forniscono in uscita il valore di tensione associato al risultato dell’operazione; l’uscita dipende dal valore degli ingressi Sono circuiti digitali di base nei quali viene individuata una uscita (Y) ed uno o più ingressi (x1,..,xn)

Rete logica: è un circuito costituito

da porte logiche collegate tra loro