Qual è l'origine di K = 1024? [chiuso]


73

Perché esiste la discrepanza nel numero di byte in un kilobyte? In alcuni punti ho visto il numero 1024 (2 10 ) mentre in altri è 1000 (e la differenza diventa sempre più grande con M, G, T, ecc.).

Questa non è una discussione sul fatto che dovrebbe essere 1024 o 1000 (anche se puoi discuterne nei commenti) ma su dove / quando questa situazione ha avuto origine e / o si è diffusa.

Per quanto ne so, i produttori di hardware e Linux non usano mai la variante 1024. Questo, e sentito dire, mi fa pensare che MS-DOS abbia reso comune questa versione, ma quali sono i fatti?


23
Una rappresentazione è in binario (2 ^ 10 o 1024) mentre l'altra è in decimale (10 ^ 3 o 1000) ...
Trezoid,

13
Se stai cercando persone specifiche da incolpare, indica i produttori di dischi rigidi. Fa sembrare che i loro dispositivi abbiano più capacità quando è espresso in MB decimali, GB, ecc. Lo hanno sempre fatto, credo, ma fino a poco tempo fa il divario tra decimale e binario è cresciuto abbastanza importare in modo significativo.
LawrenceC,

23
@ultrasawblade: vuoi incolpare i produttori di HDD di essere uno dei pochi gruppi che usano gigabytecorrettamente il termine ?
paradroid

13
Mi è sempre sembrato una cosa comprensibile che 1K = 1024 con qualsiasi cosa relativa al computer prima di 20 GB o giù di lì diventasse un luogo comune. Ciò coincide approssimativamente con il momento in cui molte persone non tecniche hanno iniziato a utilizzare i PC su base regolare. Vaste quantità di letteratura informatica (tecnica e non tecnica) dei primi anni '90 e precedenti non menzionano nulla di KB "decimali" o "kibibytes".
LawrenceC,

13
@paradroid: gigabyte inizialmente significava 1024 mb (e mb = 1024 kb, ecc.). È stato ricollegato a significare 1000 perché i produttori di HDD hanno insistito per usarlo in modo errato. Certo, questo dipende da ciò che consideri "giusto" poiché chilo significa 1000, ma all'interno dell'informatica, il kilobyte era sempre 1024 per motivi tecnici fino a quando non fu cambiato nel 1999.
James,

Risposte:


63

Risale un po 'di tempo ed è dettagliato qui . Sembra che tu possa incolpare IBM, se qualcuno.

Dopo averci pensato un po 'di più, darei la colpa agli americani nel loro insieme, per il loro palese disprezzo per il Système international d'unités : P


31
È sempre facile incolpare gli americani.
Notinlist,

13
@Notinlist: è uno scherzo.
paradroid

5
Mi ricorda una scena epica del film Pulp Fiction ... Quello con la domanda sul "sistema metrico". :-)
Pierre Watelet,

7
@Notinlist È facile incolpare sempre gli americani. Ecco perché lo facciamo così tanto. Quello e il fatto che è divertente.
Singletoned

3
La voce del 1961 è interessante, in quanto menziona "65k" - essendo il primo ordine di grandezza che può mostrare una chiara differenza tra "k = 1024" e "k = 1000, arrotondato", scende chiaramente per quest'ultimo. Nel 1964, invece, tutti usano i significati binari.
Casuale 832,

26

All'inizio tutta l'informatica era di basso livello. E a basso livello di programmazione il numero "1000" è totalmente inutile e avevano bisogno di prefissi per quantità maggiori, quindi hanno riutilizzato quelli SI. Tutti lo sapevano sul campo, non c'era confusione. Ha funzionato bene per 30 anni o chissà.

Non è perché erano americani, quindi avevano bisogno di rompere l'IS a tutti i costi. :-)

Non esiste un programmatore che conosco e dica kibibyte. Dicono kilobyte e significano 1024 byte. Gli algoritmi sono pieni dei poteri di 2. Ancora oggi, "1000" è un numero davvero inutile tra i programmatori.

Dire kibi e mibi è troppo divertente e attira l'attenzione dal soggetto. Li diamo volentieri ai settori delle telecomunicazioni e dell'archiviazione su disco :-). E scriverò kibibyte su interfacce utente in cui i non programmatori possono leggerlo.


3
È ancora più divertente dire quando si parla di bit - "mibibit"
James,

3
Penso che KiB, ecc. Dovrebbe essere pronunciato in kilobinarybyte, ecc. E non in kibibyte.
Lie Ryan,

2
@Lie Ryan, usando prefissi come "kilobinarybyte" era una proposta che alla fine fallì e aveva abbreviazioni diverse rispetto a quelle di kibibyte. Vedi en.wikipedia.org/wiki/Binary_prefix
Ben Lee,

3
quindi sarebbe giusto pronunciare km come kilodecimalmeters?
JustJeff,

3
Il numero 1000 non è "totalmente inutile". "k = 1000" è stato utilizzato nell'informatica dagli anni '50. I primi computer erano in realtà macchine decimali, non binarie. La velocità di rete è sempre stata misurata in multipli di 1000. "Ha funzionato bene per 30 anni"? Veramente? I programmatori si lamentano di "k = 1024" da almeno 43 anni. en.wikipedia.org/wiki/Timeline_of_binary_prefixes
endolith

8

È corretto e ha senso per le persone tecniche utilizzare 1024 = 1K in molti casi.

Per gli utenti finali è normalmente meglio dire 1000 = 1k perché tutti sono abituati al sistema numerico basato su 10.

Il problema è dove tracciare la linea. A volte gli addetti al marketing o alla pubblicità non riescono realmente nella "traduzione" o nell'adattamento dei dati tecnici e della lingua agli utenti finali.


13
Le persone tecniche dovrebbero sapere che 1024 byte è in realtà un Kibibyte (KiB), ma devono sapere che il termine non è conosciuto da persone non tecniche.
paradroid

8
Chi dice che è corretto? Kilo ha significato 1000 per secoli, quindi IMO non avrebbero mai dovuto usarlo per 1024.
Bart van Heukelom,

20
Il byte non è un'unità SI; KB significa "kilobel" (scontato, un'unità che non vorresti mai usare a meno che non descrivessi il suono, se presente, prodotto dal Big Bang.)
Wooble,

10
@njd: il C64 ha 65536 byte di RAM. Per convenzione, la dimensione della memoria è specificata in kibiBytes, le velocità di trasferimento dei dati in kilobit e l'archiviazione di massa in qualunque cosa i produttori pensino ai byte attuali. I dischi rigidi utilizzano T, G, M e k sull'etichetta, Windows riporta le dimensioni in Ti, Gi, Mi e ki. E quei floppy da 1,44 MB? Quelli non sono né 1,44 MB né 1,44 MiB, sono 1,44 kilokibibyte. Sono 1440 kB o 1'474'560 byte.
Terzo

5
Le varianti di kiB, ecc. Sono abbastanza nuove, però. Non credo che fossero in uso quando si presentò questo problema, certamente - avevo l'impressione che fossero stati fatti esattamente per risolverlo!
Shinrai,

3

Incolpare i produttori di semiconduttori (ci forniscono solo hardware binario) [1]

Meglio ancora: incolpare la logica stessa (la logica binaria è solo la logica più elementare).

Meglio ancora: a chi dobbiamo dare la colpa del miserabile sistema decimale ?

Ha molti più difetti del sistema binario. Si basava sulla tosse sul numero medio di dita nella tosse della specie umana

Oooo ...

[1] Voglio il mio computer quantistico a tre qubit !!! Adesso!


29
Penso che troverai un numero medio di dita inferiore a 10 </pedant>
Rory Alsop,

1
@Rory: ^ è stata una bella risata
Mehrdad,

2
@Rory: "meno" </pedant>. O è? Aspetta un attimo, ho capito ...
esplosioni

1

1024 non è da biasimare, è davvero un'ottima cosa, in quanto è la ragione per cui il computer (digitale) può essere veloce ed efficiente come lo sono oggi. Poiché il computer utilizza solo il valore 2 (0,1), elimina le difficoltà e la complessità (inesattezza) del sistema anologico dall'equazione.

Sarebbe più complicato se dicessimo che un kilobyte è 1000 bit perché 2 a quale potenza è 1000? quindi anche 1 kilobyte sarebbe inaccurato perché avrà punti fluttuanti o un'approssimazione.

Ma in gran parte incolpo il marketing per la vendita di 8 gigabyte * e l'aggiunta di questo in caratteri piccoli

* 1 gigabyte is 1,000,000,000 bytes. 

è davvero un peccato, è la stessa cosa con la velocità di connessione, il tuo ISP dirà 1,5 Mbps invece di dirti ~ 150 kiloByte. è solo molto fuorviante


3
Nel dire quanto è grande un file di 15682 bit o quanto velocemente un tale file può essere trasferito su una rete, potenze di 2 non hanno alcun ruolo. E questo è il contesto in cui c'è più confusione.
Bart van Heukelom,

2
Alla fine il file viene archiviato nelle pagine di memoria, che sono allineate ai limiti di potenza binari. Quando si invia tramite TCP, la dimensione della finestra in cui vengono inviati i pacchetti è multipli di potenze di due. Quando il file viene archiviato sul disco rigido, viene archiviato in blocchi di potenze di due. Capisco quello che stai dicendo, ma kilobyte = 1024 (o almeno multipli di potenze di due) è radicato nel calcolo di troppo.
FryGuy,

1
per essere onesti, il networking ha sempre usato i bit come base.
Synetech,

1
Il primo 5,25 "floppy conteneva 109.375 byte ed era pubblicizzato come" 109,4 Kbyte ". Immagino che lo abbiano fatto anche per cattive ragioni di marketing? Pensi che sarebbe più logico scriverlo come" 106,8 KB "? E unità a nastro e processore le velocità e le velocità del modem sono tutte misurate in decimali per ingannarci? Per favore.
endolith

1
@Ibu: la differenza tra 1.000.000.000 di byte e 1 GB è 0. In effetti, perché i produttori di floppy gonfiano maliziosamente i loro numeri quando la differenza è così piccola? Non lo farebbero. Hanno usato 1000 perché è logico, ovvio e corretto, non perché fanno parte di una cospirazione per frodare i clienti. Gli stessi produttori di dischi rigidi misurano da 1000 anni anche per gli stessi anni, per lo stesso motivo.
endolith, il

0

Se consideri che i numeri sui computer sono binari e 2 ^ 10 è 1024, ha perfettamente senso. È molto più facile lavorare con 1024 anziché 1000, perché puoi dividere facilmente per 1024 usando solo la matematica dei numeri interi e lo spostamento dei bit . La divisione per 1000 è un'operazione molto più costosa, che potrebbe richiedere matematica in virgola mobile.

Per esempio

bytes = 1 073 741 824
kilobytes = bytes >> 10 = 1 048 576
megabytes = kilobytes >> 10 = 1024
gigabytes = megabytes >> 10 = 1

Pensi seriamente che il tempo di calcolo sia rilevante? Perché i computer non elaborano "km" come "1024 m", quindi, se è così difficile convertirli?
endolith il

@endolith Sì, penso di sì, almeno storicamente. Sebbene possa essere trascurabile oggi, nei primi giorni in cui ogni ciclo della CPU era un premio, un calcolo semplice e veloce che forniva una risposta decente sarebbe preferibile per qualcosa del genere. Soprattutto se le persone sapessero per convenzione che 1 KB significava 1024 byte.
Jo-Herman Haugholt,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.