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


Appunti di Informatica: Introduzione all'Informatica e alla Programmazione in Python, Appunti di Fondamenti di informatica

Appunti di Informatica (Percorso DAMS)

Tipologia: Appunti

2021/2022

Caricato il 09/11/2022

andreaguccione
andreaguccione 🇮🇹

4

(1)

3 documenti

1 / 84

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Appunti di Informatica
Andrea Guccione - Università degli Studi di Palermo - a.a. 2021/2022
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
pf51
pf52
pf53
pf54

Anteprima parziale del testo

Scarica Appunti di Informatica: Introduzione all'Informatica e alla Programmazione in Python e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

Appunti di Informatica Andrea Guccione - Università degli Studi di Palermo - a.a. 2021/

SOMMARIO

CAPITOLO PRIMO

INFORMAZIONE DIGITALE 3

CAPITOLO SECONDO

ARCHITETTURA DEL CALCOLATORE 7

CAPITOLO TERZO

MEMORIA 12

CAPITOLO QUARTO

IL SISTEMA OPERATIVO 15

CAPITOLO QUINTO

BIT, BYTE E SISTEMI DI NUMERAZIONE 19

CAPITOLO SESTO

CONVERSIONI DI BASE 22

CAPITOLO SETTIMO

IL SUONO - PARAMETRI FISICI 24

CAPITOLO OTTAVO

IL SUONO - AUDIO DIGITALI 29

CAPITOLO NONO

LE IMMAGINI DIGITALI - I FORMATI 32

CAPITOLO DECIMO

LE IMMAGINI DIGITALI - MODELLI DI COLORE 34

CAPITOLO UNDICESIMO

I VIDEO DIGITALI 46

CAPITOLO DODICESIMO

INTRODUZIONE ALLA PROGRAMMAZIONE 49

CAPITOLO TREDICESIMO

PENSIERO COMPUTAZIONALE E ALGORITMO 53

CAPITOLO QUATTORDICESIMO

PRIMI PASSI IN PYTHON 55

CAPITOLO QUINDICESIMO

LE OPERAZIONI MATEMATICHE IN PYTHON 58

CAPITOLO SEDICESIMO

LE STRINGHE IN PYTHON 61

CAPITOLO DICIASSETTESIMO

LE STRUTTURE SEQUENZIALI E CONDIZIONALI IN PYTHON 65

CAPITOLO DICIOTTESIMO

LE LISTE IN PYTHON 69

CAPITOLO PRIMO

INFORMAZIONE DIGITALE

Cos’è l’informatica?

Per informatica si intende l’elaborazione automatica delle informazioni. L’elaborazione è una qualsiasi attività annessa alla gestione dell’informazione (recupero, lettura, visualizzazione ecc.), la parola automatica s’intende l’ausilio del calcolatore. Una informazione ha contenuto informativo: può eseguire una istruzione che indica cosa fare, un dato che definisce uno stato. Si distingue una sorgente , un destinatario ed un supporto dell’informazione.

Cos’è l’informazione?

L’informazione è un concetto intuitivo: ciò che veniamo a conoscere su un argomento “oltre” ciò che sappiamo già. L’informazione viaggia su un canale di comunicazione, detto anche supporto. L’informazione è, quindi, il “contenuto” di un messaggio.

Supporto e informazione

Il supporto esibisce e trasmette l’informazione. Una stessa informazione può essere contenuta su più supporti (scritta, parlata, ecc.), e uno stesso supporto può contenere più tipi di informazioni (<> di molti argomenti). Non tutti i supporti sono adatti a trasportare tutte le informazioni (per esempio, un pallottoliere - abaco - non può rappresentare un suono). Il numero di informazioni supportate dipende dalle configurazioni del supporto (per esempio il pallottoliere sono le palline che esso contiene, quindi con una pallina può trasportare solo i numeri 0 e 1). Il rapporto tra supporto ed informazione che esso può esibire, è complesso e comporta due azioni: ● codifica (dall’informazione al supporto), in genere operata dal mittente, detta anche scrittura dell’informazione ; ● decodifica (dal supporto all’informazione), in genere operata dal destinatario, detta anche lettura dell’informazione.

ESEMPIO: Penso “ciao”, scrivo “ciao” → Leggo “ciao”, informazione arrivata

Codifica e decodifica

Scrivere un'informazione significa darle una forma, dare una rappresentazione concreta a quello che abbiamo in mente (codifica). Leggere una informazione significa tradurre la forma concreta che essa ha in una forma astratta che comprendiamo nella nostra mente (decodifica).

Ogni sistema di codifica e decodifica comporta 3 aspetti: ● Quali simboli sono accettati (alfabeto, ad esempio); ● Quali sono le configurazioni dei simboli accettati (vocabolario); ● Quali sono le convenzioni di informazione associate alle configurazioni (semantica).

Possibile definizione d’informazione (da Wikipedia)

L’informazione è lo scambio di conoscenza tra due o più persone all’interno di una comunità o nella società, nonché il significato che le persone coinvolte attribuiscono a tale conoscenza (continua). Il significato ha bisogno di un “supporto” di rappresentazione ( codifica ). L’uomo usa delle notazioni convenzionali per la rappresentazione di informazioni allo scopo di rendere possibile lo scambio e la comprensione ( forma e semantica ).

Rappresentazione delle informazioni

● Il testo, scritto o parlato ○ Le lettere dell’alfabeto (A,B,C,...,Z) ○ I segni di interpunzione e simboli speciali (!? ; £ $ % & / @ …) ○ Le parole e le frasi (“mamma” “ho comprato il latte!”) ● I numeri ○ 10 cifre decimali: 0,1,2,3,4,5,6,7,8, ○ I numeri interi: +47, - ○ I numeri reali: -123,4567 E(-12)

Elaborazione “automatica” delle informazioni

L’obiettivo è la costruzione di una macchina che possa elaborare le informazioni in modo automatico. ● Serve una “unità di misura” dell’informazione; ● Serve una rappresentazione fisica dell’unità di misura perché si possa costruire una macchina in grado di: ○ memorizzare ○ elaborare ○ trasmettere l’informazione.

Codifica e informazione nel computer

Il tipo di codifica si può definire sulla base del numero di configurazioni degli elementi dell’alfabeto di codifica. Per questo si dice una codifica è in base N se N è il numero dei simboli: ● Codifica decimale →10 simboli (da 0 a 9); ● Codifica alfabetica di base →21 simboli (da A a Z maiuscoli). Tutti i numeri e le parole sono combinazioni dei simboli e formano il vocabolario (insieme delle forme).

Rappresentazione interna ed esterna dell’informazione

Il calcolatore rappresenta tutta l’informazione che gestisce tramite sequenze di bit (rappresentazione esterna per l’essere umano e rappresentazione interna per l’agente di calcolo). L’informazione transita continuamente tra le due forme.

Semantica dei contenuti informativi

La semantica della rappresentazione digitale di un contenuto informativo è stabilita a priori da chi la codifica in forma manipolabile da parte del calcolatore (numeri, testi, audio, video, grafica ecc.). Queste specifiche formali vengono trasposte in dispositivi atti a gestire “automaticamente” la forma digitale prescritta entro contesti interpretativi univoci.

CAPITOLO SECONDO

ARCHITETTURA DEL CALCOLATORE

Architettura di un calcolatore

Il calcolatore è uno strumento programmabile per rappresentare, memorizzare ed elaborare informazioni, ed è un sistema costituito da molte componenti. Studiare l’architettura di un sistema significa: ● individuare ciascun componente del sistema; ● individuare le funzioni di ciascuna componente; ● comprendere i principi generali di funzionamento del componente; ● comprendere come le varie componenti interagiscono. La prima decomposizione di un calcolatore è relativa a due macro-componenti: ● Hardware ● Software ○ di base, per la gestione del sistema; ○ applicativo, per l’uso del sistema (si appoggia al software di base).

Le funzioni

Le funzioni di base che un calcolatore deve assolvere sono il trasferimento (spostamento dei dati da una componente all’altra), scambio dati con l’utente (passaggio da rappresentazione esterna ed interna), elaborazione (esecuzione di calcoli per assolvere ad una richiesta), controllo (esercitato dal supervisore, per la gestione delle varie componenti e la loro interazione) e la memorizzazione (archiviazione persistente delle informazioni). Le varie componenti eseguono le funzioni associate ad esse tramite specifiche elaborazioni delle informazioni. Ogni componente esegue un insieme di passi specificati a priori per assolvere il compito che gli è stato assegnato. La specifica dei passi è generalmente nota come algoritmo.

Gli algoritmi

Un algoritmo è un procedimento da seguire per raggiungere un certo obiettivo. Ciò vale in qualsiasi ambito, non prettamente informatico. Descrive a colui che è preposto ad un dato compito, quali operazioni devono essere eseguite per portare a termine il compito assegnato (ad esempio una ricetta di cucina, preparare il caffè ecc.). Elementi essenziali di un algoritmo sono: ● Dati : ciò che deve essere elaborato (gli ingredienti di una ricetta, la caffettiera e il caffè ecc.); ● Istruzioni semplici : i singoli passi che devono essere compiuti sui dati (rompere le uova, sbattere le uova ecc.); ● Istruzioni complesse : combinazione di più istruzioni semplici.

CPU (Unità centrale di elaborazione)

L’unità centrale di elaborazione è realizzata fisicamente sotto forma di microprocessore (chip). I microprocessori sono dispositivi elettronici molto complessi, composto da milioni di dispositivi elementari detti transistor (interruttore elettronico atto a realizzare il funzionamento di “1 bit”, quindi assume lo stato di 0 0 1). La CPU è costituita da CU (unità di controllo), ALU (unità aritmetico-logica) e registri. Vere e proprie unità centrali contenute in un unico chip.

Chip

Il chip è una piastrina di silicio di alcuni millimetri di lato sulla quale vengono incise, con particolari tecnologie, molte migliaia di circuiti a transistor. I circuiti sono integrati alla piastrina.

Elementi della CPU

Unità di controllo (CU) : svolge funzioni di controllo, decide quali istruzioni eseguire; ● Unità aritmetico logica (ALU) : esegue le operazioni aritmetico-logiche +,-,*,/ e confronti; ● Registri : memoria ad alta velocità usata per risultati temporanei e informazioni di controllo. Il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro.

Registri

PC : contatore delle istruzioni (Program Counter) ○ i bit del PC indicano l’indirizzo della prossima istruzione da eseguire ● IR : registro delle istruzioni (Instruction Register) ○ i bit del IR indicano l’istruzione che deve essere eseguita ● PSW : parola di stato del processore (Processor Status Word) ○ contiene informazioni, opportunamente codificate, sull’esito dell’ultima istruzione che è stata eseguita

ALU

L’Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico. Legge i valori presenti in alcuni registri, esegue le operazioni e memorizza il risultato in un altro registro.

Ciclo di esecuzione delle istruzioni (FDE)

La CPU esegue un’istruzione mediante le tre seguenti operazioni di base, ricordandoci che l’IR contiene l’istruzione attualmente in esecuzione, mentre il PR l’indirizzo dell’istruzione successiva da eseguire: ● Fetch (lettura): si accede alla prossima istruzione, riferita dal registro contatore dell’istruzione (PC), si porta tale istruzione dalla memoria centrale al Registro Istruzioni (IR). Quindi questa diviene l’istruzione attualmente in corso; ● Decode (decodifica): si identifica l’istruzione ed i dati sui quali compiere la stessa. Si trasferiscono i dati nei registri opportuni; ● Execute (esecuzione): si esegue l’istruzione sui dati. Si incrementa il PC di 1. Un programma è eseguito applicando ad ogni istruzione la sequenza fetch-decode-execute, detta ciclo di esecuzione dell’istruzione o ciclo macchina o ciclo fetch-decode-execute.

Pipeling

La sequenzialità delle operazioni di FDE è nota come pipeling. Esiste un problema: il pipeling causa degli stati di attesa in molti organi dell’unità centrale. Una sequenzialità implica sempre attesa delle parti non attive in un dato momento.

Parallelismo delle operazioni

Lo stato inattivo tipico del pipeling può venire superato se gli organi preposti alle varie funzioni possono operare contemporaneamente (mentre viene decodificata una istruzione, può intanto essere prelevata la successiva, detta pre-fetch). Altri stati di attesa possono determinarsi durante il trasferimento dei dati tra CPU e periferiche (interfaccia I/O) e si ovvia a questo problema svincolando l’unità centrale dall’attesa al completamento del trasferimento dei dati, e facendola operare indipendentemente da esso. I dati vengono memorizzati in una memoria di transito o buffer. Senza una gestione dei tempi si corre il rischio che avvengano sovrapposizioni e sfasature.

Sincronizzazione

Si devono sincronizzare le operazioni svolte in parallelo. A questo scopo nella CPU è integrato un orologio (Timer o Clock ) che scandisce degli intervalli di tempo costanti. Le varie componenti della CPU usano tali intervalli per sincronizzarsi fra loro. L’intervallo di tempo scandito dall’orologio corrisponde generalmente al tempo necessario per svolgere le operazioni base della CPU (ciclo macchina).

Clock

Si misura in cicli/secondo [Hz] (quanti cicli in un secondo). Ad ogni impulso di clock si esegue un ciclo macchina. La velocità di un microprocessore dipende dalla frequenza del suo clock, ma non solo poiché l’esecuzione di un’istruzione può richiedere più cicli.

CAPITOLO TERZO

MEMORIA

E’ una parte del computer destinata a conservare informazioni per un certo tempo. Si suddividono in: ● Memorie principali; ● Memorie di massa (o secondarie). Le grandezze relative ad una memoria sono: ● la capacità (Byte e multipli) che è la quantità di dati che possono essere al massimo immagazzinati nella memoria; ● il tempo di accesso (ms) che è il tempo che intercorre tra la richiesta di lettura/scrittura di un dato all'istante di risposta dell’unità di memoria; ● la latenza, che è il ritardo tra l’inoltro di una richiesta in lettura alla memoria e l’istante in cui il dato è pronto per l’uscita;

Memorie principali

Note anche come memorie veloci per la rapidità di scambio dati con la CPU. Sono fisicamente interne al calcolatore. Si attivano all’accensione del calcolatore. Possono essere: ● RAM (Random Access Memory) ● ROM (Read Only Memory) ● cache

RAM

E’ una memoria ad accesso casuale (non sequenziale - random) e permette l’accesso diretto a qualunque indirizzo di memoria con lo stesso tempo di accesso - nelle memorie sequenziali questo tempo è sensibile alla posizione del dato in memoria. Vengono caricati i programmi ed i dati durante la loro esecuzione (il primo programma è il sistema operativo), quindi se non richiesta esecuzione non vengono caricati. E’ una memoria volatile. Se la quantità di memoria RAM non è sufficiente per i programmi in esecuzione si utilizza una parte dell’hard disk (swap) con calo di prestazioni. La RAM è organizzata in moduli, i quali presentano delle piedinature (pin) per attaccare la memoria alla scheda madre. Le RAM si presentano come schede: ● SIMM (Single In-line Memory Module): i contatti sono solo su una faccia della scheda; ● DIMM (Dual In-line Memory Module): i contatti sono in entrambe le facce della scheda.

ROM

La ROM, ovvero memoria a sola lettura, è una tipologia di memoria informatica non volatile in cui i dati sono memorizzati tramite collegamenti elettronici fisici e stabili.

Indirizzi di memoria

I bit nelle memorie sono raggruppati in celle. Tutte le celle sono formate dallo stesso numero di bit. Una cella composta da k bit, è in grado di contenere una qualunque tra 2^k combinazioni diverse di bit. Ogni cella ha un indirizzo, serve come accesso all’informazione. La cella è l’unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte).

Memoria verso CPU

Le CPU sono sempre state più veloci delle memorie: l'aumento di modalità di integrazione ha consentito di realizzare CPU molto efficienti e veloci; nelle memorie è aumentata la capacità più che la velocità. L’accesso alla memoria passa attraverso il bus, la frequenza di funzionamento del bus è molto più bassa di quella della CPU; il bus può essere impegnato ad effettuare trasferimenti controllati da dispositivi di I/O “autonomi”. È difficile riordinare le istruzioni in modo da poter sfruttare i tempi di attesa della memoria. Soluzioni: buffer di periferiche e memoria cache

Buffer periferiche

Le periferiche sono molto più lente del processore e necessitano un modo per adeguare la propria velocità alla CPU. Ogni periferica è connessa al bus tramite un buffer che è una piccola area di memoria RAM Buffer: una zona di memoria usata per compensare differenze di velocità nel trasferimento o nella trasmissione di dati, oppure per velocizzare l'esecuzione di alcune operazioni

Memoria cache

Memoria piccola e molto veloce nata per compensare la strozzatura nella comunicazione tra RAM e processore. Principio di località: quando il processore utilizza un’istruzione o dato è molto probabile che usi anche quelli ad esso vicini nella memoria (località spaziale). Quando il processore utilizza un’istruzione o dato è molto probabile che lo usi di nuovo in breve tempo (località temporale). Il principio di località ispira il funzionamento della cache che contiene il blocco di dati ed il blocco di istruzioni immediatamente vicini al dato (o all’istruzione) corrente. Essi verranno conservati per un certo tempo e poi scartati se non più utilizzati.

Memoria secondaria

Due classi fondamentali di dispositivi in base al metodo di accesso consentito ad accesso sequenziale e ad accesso diretto. Dispositivi ad accesso sequenziale: per recuperare un dato è necessario accedere prima a tutti quelli che lo precedono sul dispositivo; NASTRI MAGNETICI Dispositivi ad accesso diretto: è possibile recuperare direttamente un qualunque dato memorizzato. DISCHI

Nastri magnetici

Sono nastri di materiale magnetizzabile avvolto su supporti circolari, o in cassette. Sul nastro sono tracciate delle piste orizzontali parallele. Di solito, 9 piste parallele di cui 8 corrispondono ad un byte e la nona è il bit di parità. I dati sul nastro sono organizzati in zone contigue dette record, separate da zone prive di informazione (inter-record gap). Tutte le

CAPITOLO QUARTO

IL SISTEMA OPERATIVO

Definizione

Un sistema operativo è un programma che controlla l'esecuzione di programmi applicativi e agisce come interfaccia tra le applicazioni e l'hardware del calcolatore. Gli obiettivi sono: ● Efficienza: ○ Un S.O. cerca di utilizzare in modo efficiente le risorse del calcolatore (gestore delle risorse), e quindi memoria, processore, periferiche. ● Semplicità: ○ Un sistema operativo dovrebbe semplificare all’utente esterno l’uso dell'hardware di un calcolatore (macchina astratta).

Sistema operativo come gestore di risorse

Il S.O. è un programma, simile all'oggetto del controllo, ovvero le applicazioni controllate. Il S.O. lascia il controllo alle applicazioni e poi si affida al processore per riottenere il controllo.

Sistema operativo come macchina astratta

Un sistema operativo nasconde ai programmatori i dettagli dell'hardware e fornisce ai programmatori una Application Programming Interface (API) conveniente e facile da usare. Agisce come intermediario tra programmatore e hardware.

Macchina astratta: il modello “a cipolla”

Il modello a cipolla rappresenta il sistema operativo come una successione di strati costruiti sopra un nocciolo. Il nocciolo è costituito dalla macchina hardware; ciascuno degli strati della cipolla rappresenta un livello di macchina virtuale. In tutto, sei livelli di astrazione separano l’utente dall’hardware sottostante (incluso il livello utente)

Gli strati del modello a cipolla

Ogni strato (livello) costituisce una macchina virtuale. Usa le funzionalità di quello sottostante. Fornisce servizi al livello superiore nella gerarchia e gestisce delle risorse mediante politiche invisibili al livello sovrastante (struttura modulare del sistema operativo)

S.O. come gerarchia di Macchine virtuali

Chi scrive un sistema operativo vede il sistema come un insieme di risorse fisiche (macchina) da comandare direttamente. Chi progetta un ambiente di programmazione vede la macchina come l’insieme delle funzioni messe a disposizione dal sistema operativo. Chi scrive un programma vede la macchina come un insieme di funzioni messe a disposizione dall’ambiente di programmazione. Un utente che usa un programma vede il sistema come l’insieme delle azioni e dei comandi che può fornire alla macchina per soddisfare le sue esigenze. L’utente quindi vede la macchina astraendo da quanto sta in mezzo.

Evoluzione storica dei Sistemi Operativi

Prima generazione (1945-1955)

Primo decennio: ● valvole, macchine enormi, poco affidabili ● un solo team costruiva, programmava, manteneva la macchina ● programmi in linguaggio macchina assoluto (codice binario) ● no SO ● ciclo di utilizzo ○ prenotazione ○ Inserimento scheda a spinotti ○ calcolo sotto la supervisione del programmatore ● appl tipiche: tabelle matematiche ENIAC può essere considerato il primo calcolatore: occupava una stanza di circa 30 mq. Pesava circa 30 tonnellate

Seconda generazione (1955-1965)

Secondo decennio: ● transistor, sistemi commerciali ● molto grossi e costosi (banche, università..) ● compare il concetto di job Cos’è un Job? Un programma o un insieme di programmi la cui esecuzione veniva richiesta da un utilizzatore del computer Ciclo di esecuzione di un job: ● Il programmatore: ○ Scrive su carta il programma ○ Un addetto perfora una serie di schede col programma ed i dati ○ Consegna le schede ad un operatore ● L’operatore: ○ Inserisce le schede di controllo ○ Inserisce le schede del programmatore ○ Attende il risultato e lo restituisce al programmatore Operatore diverso da programmatore diverso da utente

Gestori delle periferiche ● Gestiscono la comunicazione con i dispositivi ● Forniscono un’interfaccia software integrata del dispositivo (driver) File system ● Gestiscono la memorizzazione e il recupero di informazioni sui dispositivi di memoria di massa Interprete dei comandi ● Esegue i comandi degli utenti e/o dei programmi applicativi ○ Interfaccia utente ○ Sicurezza negli accessi Programmi di utilità ● Librerie di programmi che forniscono servizi sia all’utente che ad altri programmi ● Traduttori dei programmi degli utenti in linguaggio macchina ● Editor di testi, programmi di grafica, programmi di monitoraggio delle risorse e/o della rete …

Gestione dei processi

Esiste una notevole differenza nella velocità di esecuzione di operazioni tra processore e unità di I/O. Il SO deve assicurare che il processore rimanga inutilizzato il minor tempo possibile. Tanti programmi in esecuzione, ma un solo processore: quasi parallelismo. Il SO mantiene una coda di processi (programmi in esecuzione) dei quali solo uno è attivo per ogni istante di tempo. Lo stato può essere: ● In esecuzione programma attualmente in esecuzione ● Pronto programmi in memoria e pronti per l’esecuzione, ordinati per priorità ● Attesa programmi che non possono essere eseguiti perché in attesa del completamento di una operazione di I/O

CAPITOLO QUINTO

BIT, BYTE E SISTEMI DI NUMERAZIONE

Generalità

Un Sistema di Numerazione è un insieme di pochi simboli (cifre) e regole che consente di rappresentare infiniti valori numerici. Una sequenza di tali cifre è un valore numerico. Le regole sono convenzioni per associare alle sequenze i valori numerici: ● codici posizionali -> il valore dipende dalla posizione occupata dalle cifre

Dissezione di un numero decimale

Con il codice posizionale possiamo individuare le parti fondamentali di un numero e farne la dissezione e darne una rappresentazione polinomiale.

Rappresentazione polinomiale di un numero decimale

12310 =1 x 100 + 2 x 10 + 3 = 1 x 102 + 2 x 101 + 3 x 100