Ma perchè c'è il 2???

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
alex.franci
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: mer 26 lug 2006, 10:26
Località: Bologna
Contatta:

Ma perchè c'è il 2???

Messaggio da alex.franci »

Ragazzi,
ho un serio problema... e so che se non lo risolverò al più presto mi tormenterà per tutta la vita :D
So che in informatica la scala è basata sull'esponenziale del 2: per esempio ci sono 1024 mb (2^10) in 1 gb. ma perchè???

cioè io sapevo che è perchè in informatica si hanno solo 2 possibilità: o 0 o 1. ma ero piccolo quando me l'hanno spiegata così e ora che sono più grandicello comincio ad avere seri dubbi (mi sa che è 'na cagata).

Aiuto!
Grazie :D

Avatar utente
gohanz
Staff
Staff
Messaggi: 5832
Iscritto il: mar 30 nov 2004, 0:00

Messaggio da gohanz »

I processori sono composti da Transistor. Li puoi immaginare come interruttori, in cui lo 0 o l'1 rappresentano il loro stato acceso/spento. Tutto qui.

Avatar utente
alex.franci
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: mer 26 lug 2006, 10:26
Località: Bologna
Contatta:

Messaggio da alex.franci »

sì ma xk proprio 1024?
non potevano essercene 1000?

Avatar utente
Absolut
Linux 4.x
Linux 4.x
Messaggi: 1465
Iscritto il: gio 10 feb 2005, 0:00
Slackware: current
Località: Roma

Messaggio da Absolut »

2^10= 1024.... 2^32... etc etc... spazio di insirizzamento.... mi pare no!?

Avatar utente
alex.franci
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: mer 26 lug 2006, 10:26
Località: Bologna
Contatta:

Messaggio da alex.franci »

sì, ma ho capito del perchè si usa il 2. perchè ci sono solo 2 possibilità (o 0 o 1).
ma non ho capito perchè proprio 2^10. cioè... non possono essercene 1000 di megabyte in un gigabyte?

mi sa che avrei bisogno di capire proprio esattamente come sono messi i byte. mi servirebbe tipo un disegnino. domani vado a consultare la mia bibbia (Appunti di Informatica Libera)

ma forse è l'orario :P spero domattina di capire e avere l'illuminazione

comunque grazie e se avete ancora delle lucidazioni scrivete pure :)

Avatar utente
Platone76
Linux 0.x
Linux 0.x
Messaggi: 13
Iscritto il: mar 12 ott 2004, 0:00
Località: Firenze, Italy
Contatta:

Messaggio da Platone76 »

Allora... con 1 bit puoi codificare 2 messaggi: 0 e 1.
Con 2 bit puoi codificare 4 messaggi: 00, 01, 10 e 11.
Con 3 bit ne puoi codificare 8, e così via, secondo la regola della potenza del 2.

Chiaramente, tutto quello che passa dal processore viene trattato come un numero binario, quindi ricodificato in codice di 0 e 1, associabile ad una sequenza di "acceso" e "spento".
Per tutto non si intende solo i valori che possono essere contenuti in un blocco di memoria, ma pure l'indirizzo della memoria stessa. Ora, mettiamo il caso che si voglia indicizzare un tot di memoria utilizzando 10 bit: in questo modo puoi indicizzare i valori che vanno da 0 a 1023. Per fare le cose "in base 10" dovresti a questo punto buttare via 24 indici (dal 1000 al 1023) per far "tornare i conti". Ma questo:
1) E' complicato
2) Va contro la logica della macchina
3) E' controproducente

"Storicamente" si è deciso quindi di utilizzare la nozione 1 KByte = 1024 Byte (e via dicendo), perché faceva più comodo ed era più in sintonia con il mondo delle macchine.

Comunque sia, il problema è "riaffiorato" abbastanza ultimamente, tanto che c'è qualcuno che propone il Kibibyte (Kilo Binary Byte) come unità di misura al posto del KByte. Se vai su wikipedia inglese e cerchi KB ce li hai nella prima riga.

Ciao!

Francesco

Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Messaggio da phobos3576 »

Leggiti questo mattone che ho scritto qualche tempo fa; in particolare, ti consiglio i primi capitoli della sezione Assembly Base.

http://xoomer.alice.it/ramsoft

Dopo che lo avrai letto tutto, le tue idee saranno ancora più confuse!

:D :D :D :D :D :D

Comunque, come ti ha già detto Platone76, nel mondo dei PC il numero perfetto è 2 e non 3; rappresentando qualsiasi codifica numerica sotto forma di potenza del 2 con esponente intero, si ottengono enormi semplificazioni, sia hardware, sia software!

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

in un mondo binario fare le divisioni per 2 è come fare nel mondo decimale divisioni per dieci (e quindi è una divisione che si fa semplicemente con uno shift, se il numero è pari);

pensa allo spreco di tempo se in base 2 si dovesse dividere per dieci...in base 2 usare le potenze di 2 porta a delle ottimizzazioni;
Ultima modifica di Paoletta il mar 8 ago 2006, 11:11, modificato 2 volte in totale.

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

molto semplicemente, si usa 1024 (2^10) perché è ragionevolmente simile a 1000 (10^3), e sembrava un buon riferimento da usare come "ordine di grandezza", tutto lì.

@paoletta: il tuo messaggio non è molto chiaro :P

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

useless ha scritto:
@paoletta: il tuo messaggio non è molto chiaro :P
in effetti è vero, spero di averlo un po' chiarito!
Ultima modifica di Paoletta il mar 8 ago 2006, 11:18, modificato 1 volta in totale.

Avatar utente
op15l
Linux 3.x
Linux 3.x
Messaggi: 604
Iscritto il: mer 26 gen 2005, 0:00
Kernel: 2.6.27
Desktop: kde 4.1.3
Località: Cattolica

Messaggio da op15l »

paoletta voleva dire che nel mondo binario e' molto facile fare una divisione se il divisore e' un 2^n, basta fare uno shift (come avviene nel mondo decimale con il 10^n )

sir_alex
Linux 3.x
Linux 3.x
Messaggi: 735
Iscritto il: lun 21 mar 2005, 0:00
Kernel: 2.6.35-22
Desktop: KDE4
Distribuzione: Ubuntu
Località: Milano - Corbola (RO)
Contatta:

Messaggio da sir_alex »

Sostanzialmente in fisica 10^3 kilo, 10^6 mega, 10^9 giga, 10^12 tera etc, in informatica si va con esponenti di 2 ma ad esempio 2^10=1024, 10^3=1000 quindi kilo entrambi, 2^20=1048576, 10^6=1 milione quindi mega entrambi, and so on... per similitudine, direi! In alcuni casi puoi anche approssimare con gli esponenti di 10, nel senso se tipo hai un mega di disco che ci siano 576 bytes in più non ti cambia la vita, quindi puoi semplificare se hai bisogno... alla fin fine i kilo mega giga e tera in informatica puoi ricordarti che sono come in fisica più un qualcosina...

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Terzo tentativo di scrittura: la prima volta si è piantato firefox (non succede quasi mai), la seconda ho inavveritamente spento il pc... :evil: :roll: :cry:
Ormai gli altri hanno già risposto e meglio di quanto avrei potuto fare io, quindi mi limito ad un paio di osservazioni e a una riflessione.

L'uso dei prefissi "ingegneristici" diventa via via sempre più impreciso man mano che i numeri in gioco diventano grandi, dal 2,4% del K si va a quasi un 10% per il T...
Tuttavia essi rimangono sempre molto comodi e la conversione al numero reale di byte è semplicissima... Anche in ambito scientifico spesso ci si limita a dare un'ordine di grandezza...

Paoletta è stata probabilmente chiarissima per chi sapeva già cosa voleva dire e oscura per chi non lo sapeva...
Aggiungo un esempio:
100100/10 (in base 2) = 10010
Se il numero è rappresentato in un circuito da una serie di interruttori dove 1 è acceso e 0 spento, basta far scorrere tutta la configurazione di una posizione a destra per realizzare una divisione per 2, di due posizioni per una divisione per 4, di n posizioni per una divisione per 2^n...
Divertiti un po' con una calcolatrice scientifica, anche di queste come kcalc o altre che trovi in linux...
Consiglio anch'io la lettura del tutorial di phobos3576, che richiede attenzione, ma che ti spiega moltissime cose passo passo, vedrai anche molti altri esempi e capirai di quanto semplifichi le cose usare la base 2 (che è quella più naturale, per cui si potrebbe dire di quanto si complichino inutilmente le cose usando la base 10).

La riflessione è che tendiamo a considerare la base 10 privilegiata perché abbiamo 10 dita e perché siamo stati abituati così, ma già nella nostra civiltà per il piccolo commercio si è spesso preferito la base 12 (la dozzina) perché divisibile per 2,3,4,6, contro il 10 divisibile solo per 2 e 5...
Altre civiltà, come probabilmente del resto già saprai, usavano però basi diverse...
Leggi: http://it.wikipedia.org/wiki/Sistema_di_numerazione e qualche link ai sistemi maya e babilonese, ad esempio...
Se ci pensi bene, poi, il sistema che usiamo per il tempo è ancora più folle: un anno di 12 mesi, di durata diversa, con giorni di 24 ore, ore di 60 minuti di 60 secondi... Però sarebbe folle usare per la vita di tutti i giorni i multipli del secondo...
Tu ci andresti ad un appuntamento con una che ti dice: sarò via fino al giorno giuliano 2453970, telefonami verso 1,5 Megasecondi da ora ? :D

P.S.
A proposito delle unità di misura, lo sai che qualche anno fa una sonda si è schiantata su marte perché il team europeo aveva usato i kg e il team americano le libbre? 8) :(

Avatar utente
alex.franci
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: mer 26 lug 2006, 10:26
Località: Bologna
Contatta:

grazie

Messaggio da alex.franci »

Uhm... bhe grazie mille!
Ora mi è un po' più chiaro... sì dai: ci sono 2 possibilità, quindi se fosse in base 10 si dovrebbero buttare via degli indici... sìsì: sarebbe una sciocchezza.
Okay, grazie mille!
comunque sto dando un'occhiata al sito http://xoomer.alice.it/ramsoft/ . È interessante: ora me lo leggo, così almeno spero di capirci un po' di più.
Grazie ancora!

Avatar utente
albatros
Iper Master
Iper Master
Messaggi: 2098
Iscritto il: sab 4 feb 2006, 13:59
Kernel: 6.18.0
Desktop: gnome and lxqt
Distribuzione: Ubuntu 24.04 & FC 41
Località: Darmstadt - Germania

Messaggio da albatros »

Errata corrige:
la sonda non si è schiantata, è bruciata...
Vedi: http://en.wikipedia.org/wiki/Mars_Climate_Orbiter

Rispondi