Codifica dell'informazione
Nell'era associare ad un'informazione una sequenza di simboli, nell'informatica si fa con il codice binario delle macchine: bit che può essere 0 o 1.
Con N bit si possono codificare 2N info (2N combinazioni).
Con l'info K servono un numero N di bit poiché log2 k si approssima al numero intero più grande.
Cioè che cambia è la base di rappresentazione e il modo.
Numeri interi
Per i numeri interi:
Esempio: 10A(2) = 5(10)
Per trasformare il numero da una base all'altra basta elevare la base per la posizione e moltiplicare per il numero:
22 1 21 0 20 1 2 * 1 + 0 * 21 + 20 * 1 = 4 + 0 + 1 = 5(10)
Essendo un sistema posizionale, valgono le stesse regole che per il nostro sistema.
Addizione
10A (5(10))
Esempi++ 10A (5(10)) = 20A
2(2) = 22(10)
Moltiplicazione
101 (5(10)) x 10A (5(10))
1010001010000111 * 4240+0100=26(10)
111 21111111 2111111101648 + 0 + 0 = 26(10)
Overflow
Overflow: situazione nella quale il numero di bit a disposizione non bastano per codificare un’informazione troppo complessa.
Numeri relativi
Per i numeri relativi:
Si usano 2 metodi principalmente:
- MS (modulo e segno). Semplicemente per riconoscere un positivo ed un negativo il bit che viene prima del numero determina il segno (0=+; 1=-), ma è complicato nei calcoli perché l’Acu non deve considerare quel bit. Per questo è stato ideato il metodo 2.
- Complemento a 2 (rappresentabili nell’intervallo da -2n-1.. 2n-1-1 (n=nbits). Con questo metodo il bit più a sinistra ha valore negativo.
1010101 + 010111022480+84+4+0 = 19(10)
Operazione 01 complemento
Per trasformare un positivo in negativo si invertono tutti i bits e si aggiunge di: 0001(4(10)) => 1110 + 0001 = 1111
Diversione-88224++4(10)
Codifica dell'informazione
Nel dare associare ad un'informazione una sequenza di simboli, nell'informatica si fa con il codice binario delle macchine = b-bit che può essere 0 o 1.
- Con N bit si possono codificare 2N info (2n combinazioni).
- Con n info K servono un numero di d, bit così N = [log2k]* + d si approssima al n° intero più grande.
Ciò che cambia è la base di rappresentazione e il modo.
Numeri interi
Per i numeri interi:
Esempio: 10A(2) = 5(10)
Per trasformare il numero da una base ad un'altra basta elevare la base per la posizione e moltiplicare per il numero:
22 1 21 0 20 10A22.1 + 21.0 + 20.1 = 4+0+1 = 5(10)
Essendo un sistema posizionale, valgano le stesse regole che per il nostro sistema.
Esempio
Addizione 10A (5(10)) + 10A (5(10))
Moltiplicazione 10A (5(10)) x 10A (5(10))
Overflow: Situazione nella quale il numero di bit a disposizione non bastano per codificare un'informazione. Troppo complesse.
Numeri relativi
Per i numeri relativi:
Si usano 2 sistemi principalmente.
- MS (modulo e segno). Semplicemente per riconoscere un positivo o un negativo il numero determina il segno (0 = +, 1 = -), ma è complicato nel calcolo perché l'Acu non deve considerare quel bit. Per questo è stato ideato il metodo 2.
- Complemento a 2 (rappresentabili nell'intarsio [-2n-1, n-1 - 2n-1])(n = n° bit). Con questo metodo il bit più lontano a sinistra ha valore negativo.
10A 1 1-22 1 0(-22)+0+1+1+0 - 19(10)
Per trasformare un positivo in negativo si invertono tutti i bit e si aggiunge di 10001 (4(10)) => 1110 + 0001 = 1111
Operazione 01 complemento
Diversione- 8+4+2+1 = -4(10)
Caratteri
Per i caratteri:
Essendoci un numero finito di caratteri, il codice ASCII (American, Standard Coding International Interchange) fornisce 256 caratteri associati a 8 bit, infatti 28=256 ed ad ogni numero corrisponde un carattere. (1byte)
UNICODE è un'estensione che usa 2byte.
Numeri con virgola
Per i numeri con virgola: (INTERVALLO [-1038, +1038])
Qualsiasi numero decimale è composto da una mantissa ed un ordine di grandezza.
N= numero Esponente bit Mantissa
N = M . 10E
Mantissa ordine di grandezza
Infatti saranno rappresentati con: E e M.
Con questi numeri l'overflow è causato dagli irrazionali, o dai periodici (3/7, π, e ...).
Hardware
CPU: Central Processing Unit che riceve istruzioni in binario e le esegue.
Memoria: che contiene dati e programmi (può essere/centrale, adiacente alla CPU) per far sì che vengano eseguiti velocemente.
Di massa: che contiene tutti i dati e le istruzioni che possono potenzialmente essere utilizzati.
Input-output (I/O): insieme di dispositivi che permettono l'interazione tra uomo e macchina (INPUT: tastiera, mouse etc. OUTPUT: schermo, stampante, etc.).
La CPU è spesso di dimensioni molto piccole (2cm x 2cm) e contiene miliardi di transistor, che sono coloro che danno il valore 0/1 (MICROPROCESSORE).
Bus
BSS: fisicamente sono fili saldati su plastica che permettono alla CPU di dialogare con le memorie, questi sono caratterizzati da:
- Possono trasportare un solo dato alla volta.
- Frequenza = dati/secondo.
- Ampiezza = n bit per ogni dato.
Esistono:
- Bus dati (DBUS) -> trasporta i dati e dà riscontri.
- Bus indirizzi (ABUS) -> dice dove portare i dati e le indirizzo.
- Bus controllo (CBUS) -> trasporta le istruzioni da eseguire.
Per indirizzare un tot di dati serviranno un certo numero di fili (ABUS), ad esempio 6 GB di RAM, per trasferire un tot di dati servirà un DBUS per byte. Da qui possiamo calcolare la memoria massima del nostro calcolatore: mmax = 2^nibbles [bit]
Clock
Clock
Fa in modo che l'operazione di FETCH -> DECODIFICA -> ESECUZIONE avvenga continuamente ed in tempo breve. La frequenza del clock fa da temporizzatore. CLOCK da 1 MHz a svariato FDE al sec.