È vero che 1 MB può significare 1000000 byte, 1024000 byte o 1048576 byte? [duplicare]


63

Possibile duplicato:
qual è la differenza tra un kibibyte, un kilobit e un kilobyte?

Se 1 KB (kilobyte) può significare 1000 byte o 1024 byte,

E 1 MB (megabyte) può significare 1000 KB o 1024 KB,

ciò non significa che 1 MB può significare uno dei quattro seguenti? :

  1. 1000 × 1000 = 1000000 byte

  2. 1000 × 1024 = 1024000 byte

  3. 1024 × 1000 = 1024000 byte

  4. 1024 × 1024 = 1048576 byte

Oppure 2. e 3. non sono accettati, quindi 1 MB può significare solo 1000000 byte di 1048576 byte?


3
Sapevi che ci sono −0 (zero negativo) e +0 (zero positivo)? en.wikipedia.org/wiki/Signed_zero
Aki

4
L'unico posto in cui ho visto diversi prefissi misti sono i 1.44 [qualcosa che non è mebibyte e non è megabyte].
AndrejaKo

Aki sì, ma non capisco cosa stai cercando di dire?
Pacerier

"Se i numeri non sono belli, non so cosa sia." - Paul Erdős
Aki il

4
Per favore, "kB", non "KB".
Andreas Rejbrand,

Risposte:


107

Innanzitutto, ci sono due tipi di prefisso quando si parla di informazioni digitali (lettura byte ): prefissi SI e prefissi binari .

Prefissi SI

I prefissi SI sono potenze di 1.000 (1.000 1 , 1.000 2 , 1.000 3 , ecc.):

  • 1 kB = 1 kilobyte = 1.000 1 byte = 1.000 byte;
  • 1 MB = 1 megabyte = 1.000 2 byte = 1.000.000 di byte;
  • 1 GB = 1 gigabyte = 1.000 3 byte = 1.000.000.000 di byte;
  • e così via .

Come puoi vedere, solo i simboli SI mega e superiori sono in maiuscolo. Pertanto, KB non è un prefisso valido .

Prefissi binari

I prefissi binari sono potenze di 1.024 (1.024 1 , 1.024 2 , 1.024 3 , ecc.):

  • 1 KiB = 1 kibibyte = 1.024 1 byte = 1.024 byte;
  • 1 MiB = 1 mebibyte = 1.024 2 byte = 1.048.576 byte;
  • 1 GiB = 1 gibibyte = 1.024 3 byte = 1.073.741.824 byte;
  • e così via .

Come si può vedere qui, ogni simbolo binario è capitalizzata e una minuscola i è aggiunto prima della B simbolo per indicare che stiamo parlando di kibibytes invece di kilobyte, mebibytes invece di megabyte, ecc


Tuttavia , i prefissi binari non sono ampiamente utilizzati, Windows non li utilizza affatto.

Quello che succede qui è che Windows ci dice che il disco rigido ha una capacità di 300.066.795.520 byte che, secondo Windows, equivale a 279 GB. Tuttavia, sappiamo che se 1.000.000.000 di byte = 1 GB, 300.066.795.520 byte = ~ 300 GB = ~ 279,5 GiB .

Pertanto, se vedi 1 KB (che è sbagliato, ricorda) o 1 MB, supponiamo che stiamo parlando rispettivamente di 1 kibibyte e 1 mebibyte. Anche Kb , kb , Gb , gb , ecc. Sono frequenti, sebbene rappresentino bit (8 bit = 1 byte).


Alla fine , in nessun caso 1 KB o 1 MB possono avere più valori, anche se il (cattivo) utilizzo sembra dire il contrario.


3
Forse dovresti aggiungere che quando si parla di velocità di trasferimento dei dati (in bit / s), si usano in genere prefissi base-10, ad esempio Gb / s significa in realtà "un miliardo di bit al secondo".
Frank

3
I prefissi binari sono relativamente nuovi, ed è ancora molto comune usare i prefissi SI per fare riferimento a potenze di 2. Penso che molte persone non siano nemmeno a conoscenza dei prefissi binari. @Novox ha un buon punto: anche le persone che usano GB per indicare 1048576 byte di memoria in genere usano Gb / s per indicare 1000000000 bit al secondo. L'invenzione dei prefissi binari non ha reso coerente l'utilizzo di tutti.
Keith Thompson,

5
@kubanczyk: non sono d'accordo sul fatto che sia pigrizia, ma la pigrizia non è necessariamente una cosa negativa. Abbiamo bisogno di un modo per fare riferimento all'archiviazione in unità di 1024, 1048576 o 1073741824 byte e prima dell'invenzione (relativamente recente) dei prefissi binari (Ki, Mi, Gi), riutilizzando i prefissi SI (K, M, G) era l' unico modo ragionevole per farlo. E lo abbiamo fatto per così tanti anni che i prefissi K, M, G sono ancora ambigui. Sarebbe stato meglio usare i prefissi binari e SI sin dall'inizio, ma non è quello che è successo.
Keith Thompson,

2
@kubanczyk Non fraintendetemi, sono un forte sostenitore del corretto utilizzo dell'unità. Tuttavia, non penso che "sia ovvio". Se lo fosse davvero, non ci sarebbero domande come quella, giusto?
Frank

3
Hmmm, proviamo il contrario, vero? Guarda cosa è successo con 8 bit. Invece di chiamarlo decabit e insistendo sul fatto che a volte significa in IT 8 non 10, qualcuno ha inventato un nuovo termine e lo ha chiamato un byte. Ecco! La stessa soluzione era possibile con 1024 se non con 65536.
kubanczyk il

14

Il kilobyte è una misura di base 10, quindi 1 kilobyte = 10 alla potenza di 3 = 1000 byte.

Sebbene ciò non sia del tutto accurato per misurare esattamente i dati fisici poiché sono archiviati in binari che sono misurati nella base 2, e quindi il kibibyte è stato istituito nel 1999 per sostituire i kilobyte quando usato nel contesto dell'informatica per significare 1024 byte.

Kibibyte è una misura di base 2, quindi 1 kibibyte = 2 alla potenza di 10 = 1024 byte.

Lo stesso vale per i megabyte (1 megabyte = 10 alla potenza di 6 = 1000000 byte), la cui misurazione di base 2 è mebibyte (1 mebibyte = 2 alla potenza di 20 = 1048576 byte)

  • (1) si applica a megabyte
  • (2) e (3) non sono accettati
  • (4) si applica a mebibyte

13
Mentre questo è tecnicamente corretto, vorrei sottolineare che nell'uso comune, nessuno dice kibibyte o mebibyte e quando si parla di "kilobyte", le persone si riferiscono all'unità visualizzata da Windows o dal sistema operativo, ovvero i kibibyte. L'unico posto in cui ho visto regolarmente i kilobyte usati correttamente è sulle capacità del disco rigido, il che frustra gli utenti a non finire.
Darth Android

4
Sì, ma solo perché il loro sistema operativo non utilizza i prefissi SI "correttamente".
Frank

2
Tuttavia, MB può significare 1.000.000 o 1.048.576 byte . Sebbene non sia corretto , è molto diffuso. CC @DarthAndroid
Daniel Beck

Ah, 1998 ... quando Plutone era un pianeta e un kilobyte era di 1024 byte.
Skrymsli,

9

Attualmente l'uso di "KB", "MB", ecc. Per indicare qualcosa di diverso da 1000 byte, 1000 x 1000 byte, ecc. È deprecato e contrario alla maggior parte degli standard ufficiali. Il nuovo modo di esprimere 1024 byte, 1024 x 1024 byte, ecc. È KiB (kibibyte), MiB (mebibyte), ecc. È un casino e il contesto è essenziale per capire cosa si intende. Vedi http://en.wikipedia.org/wiki/Kibibyte per una discussione di questi problemi.


7

Probabilmente no, perché sarebbe un uso incoerente dei prefissi all'interno di un singolo numero .

Mentre il prefisso SI k sta per 1000, ma in IT è spesso usato per significare 1024 (con alcuni prefissi binari sostenitori ), non ha senso l'alternativa tra questi significati nello stesso numero .



@JdeBP: nota interessante. Esso sarebbe stato "corretta" (nel senso di base 2) dire 1440 KB. Non avevo mai pensato / realizzato il mix dei due "sistemi" nel numero 1.44. +1.
BillP3rd

3

Hai ragione nella tua domanda. 1 e 4 sono corretti, 2 e 3 no.

Fondamentalmente, si definisce il "mille" che è 1000 o 1024 e lo si utilizza per le moltiplicazioni. Non vengono scambiati.

Nella base due (binario), il più vicino che puoi ottenere a 1000 in modo pulito è 1024 (2 ^ 10). Ecco come i computer pensano effettivamente alle cose, quindi in memoria (RAM), ad esempio, 1 MB sarebbe 1048576 byte.

Nella base 10, tuttavia, puoi effettivamente avere 1000. Le unità disco funzionano in questo modo e su un HDD, di solito 1 MB sarà 1000000 byte (sebbene lo stato solido funzioni in binario).

Fondamentalmente, dipende solo dal fatto che il computer e il dispositivo di archiviazione di solito funzionano in modo leggermente diverso, quindi ci sono definizioni diverse per la stessa cosa.


1

Quindi, ecco l'affare. (La maggior parte dei) computer di oggi funzionano nella base 2, non nella base 10. (Sì, so che ci sono eccezioni, ma in realtà sono casi eccezionali.) Per i nostri (vostri) scopi, tutti i computer di uso generale (e certamente tutti i consumatori) computer per uso generico) utilizzano la base 2 per tutte le elaborazioni interne. L'unità fondamentale è un bit che può essere zero o uno. Otto di questi insieme formano un byte; 16 una parola. Ora, in linea generale, si pensa che i computer a 32 bit utilizzino "parole" a 32 bit, computer a 64 bit, parole a 64 bit e così via. Hai notato? Questi sono tutti poteri di 2. Un computer con una "K" o kilobyte di memoria avrà sempre 1024 byte di memoria. Un megabyte di memoria significherà sempre 1024 x 1024 byte. Ancora una volta, tutti hanno una potenza di 2. Quindi un computer con 64 MB di memoria avrà sempre 64 x 1024 x 1024 byte. Quando vedi computer pubblicizzati per la vendita, la capacità di memoria (RAM) sarà sempre basata su potenze di 2. Non vedrai mai una scheda video, ad esempio, rivendicando 1 GB di RAM per significare un miliardo di byte.

Il punto in cui è stata introdotta la confusione e ciò che fa impazzire le persone è quando i produttori di unità disco, nella loro ricerca di offrire unità sempre più grandi, hanno detto: "Ehi! Sai, in altre aree (non i computer), una K è 1000 e una M è 1.000.000 ". Se un paio di ragazzi stessero discutendo del prezzo di vendita di un'auto, per esempio, e uno suggerisse, "Penso che '8K' suona bene", l'altro capirà automaticamente che '8K' significa $ 8.000, (non $ 8.192). Così, quei produttori di hard disk hanno detto, "Cominciamo la pubblicità dei nostri prodotti utilizzando queste misure in modo che ti suonano più grande." Ma i legali entrarono e dissero: "Aspetta un minuto qui. Praticamente tutti quelli che, sai,il modo in cui funzionano piangerà in modo disgustoso. "A cui quegli intelligenti ragazzi della pubblicità hanno risposto:" Nessun problema. Bene, basta mettere un piccolo asterisco vicino alla capacità sulla scatola e nella nostra documentazione che dice qualcosa come '* 1 GB = 1.000.000.000 di byte'. Problema risolto."

Quindi eccoci qui, con tutta questa confusione. Citando l'articolo wiki sopra, a cui fa riferimento @kreemoweet,

Nella maggior parte dei casi, il kilobyte continua ad essere usato per indicare una potenza di dieci e una potenza di due.

E la confusione continua. Ai fini pratici, si dovrebbe probabilmente supporre che le capacità del disco siano basate su unità di misura di base 10. Allo stesso modo, le capacità della RAM saranno (probabilmente) sempre basate su unità di base 2. Per altri tipi di dispositivi e prodotti, probabilmente dipenderà dalla tecnologia di base e da ciò che la gente della pubblicità pensa di poter cavarsela. Dopotutto, più grande è meglio, no?

Per alcune letture aggiuntive, è possibile esaminare la linea temporale dei prefissi binari . Non renderà le cose più chiare, ma è una lettura divertente.


2
sei sicuro che sia solo puro marketing? forse è anche correlato alla struttura / organizzazione dello storage stesso.
barlop

3
-1 Non è una cosa di marketing e non è stato quello di far sembrare le unità disco più grandi. Questa è una spiegazione ampiamente diffusa ma tuttavia del tutto falsa. È anche un'inferenza basata sulla grave ignoranza della materia. La Commissione elettrotecnica internazionale e l'Institute of Electrical and Electronics Engineers hanno effettivamente definito la logica, che ha a che fare con il far sì che diverse discipline ingegneristiche parlino la stessa lingua e non si confondano, nel 1997 in un articolo IEEE Standards Bearer . Questa è una questione di ingegneria pratica .
JdeBP

4
La mia esperienza di lavoro in Miniscribe e successivamente Maxtor negli anni '80 e '90 come ingegnere mi informa diversamente. Come ingegneri informatici, tendiamo a gravitare verso potenze di 2. Un byte sarà sempre 8 bit. Come aggiunge @barlop, a differenza della memoria del computer principale, le unità disco rotanti possono avere una struttura / organizzazione molto diverse. Ancora di più da quando la tecnologia di azionamento è avanzata in modo tale che il numero di settori per traccia varia dal bordo interno a quello esterno della superficie di registrazione. Si noti che i settori hanno ancora 512 byte. (Quel fastidioso potere di 2 di nuovo).
Bill

1
Questa è una mancanza di esperienza: una visione ristretta e miope dell'ingegneria. Vai e leggi l' articolo IEEE Standards Bearer . È proprio il tipo di paraocchi "Ma le persone usano sempre poteri di due". pensare, che poi va terribilmente storto quando colpisce la maggioranza dell'ingegneria che non è ammiccato in questo modo, che questo era ed è mirato esattamente. Come ho detto, questa è una questione di ingegneria pratica e ironicamente si dimostra il problema a cui era rivolta. Non si tratta di marketing e non si tratta di far sembrare tutto più grande. È spazzatura totalmente fabbricata. Non ci credo.
JdeBP,

1
@JdeBP sicuramente gli ingegneri hanno escogitato i termini kibibyte ecc. Che sono dimostrabili. E quale percentuale di ingegneri nel mondo del disco rigido lo usa non lo so. Forse avrei pensato che avrebbero saputo per contesto cosa significano per kilobyte e non avrebbero avuto bisogno del boccone di kibibyte, o forse no. Sembra che BillP3rd pensi che lo saprebbero e che sarebbe base2, e pensi che debbano specificare di conoscere tra di loro. Ma il marketing avrebbe scelto di utilizzare l'unità più piccola, il prefisso decimale sul pacchetto. Mi chiedo se il marketing lo stesse facendo anche prima di quell'articolo IEEE.
barlop

0

Sì, poiché è un disastro sintattico. Questo articolo di Wiki spiega il problema e include una tabella delle "nuove" parole da usare. Qui nel mondo reale nessuno usa quei termini. Devi usare il contesto per determinare quale definizione stai guardando.


4
-1 per quel "nessuno". Li uso qui nel mondo reale e sono tutt'altro che solo.
JdeBP

1
Se il consumatore medio chiedesse a un addetto alle vendite la capacità di memoria di un computer che stava pensando di acquistare e gli fosse stato detto "4 gibibyte", non avrebbe idea di cosa significasse. Allo stesso modo, la stragrande maggioranza delle persone non direbbe mai ad alta voce "gibibyte, tibibyte, pibibyte, ecc." Seriamente, prova a dire "gibibyte" ad alta voce tre volte più veloce che puoi. Posso dire che almeno per me non li ho mai ascoltati. (Per il contesto, lavoro per una grande società di software di cui probabilmente avete sentito parlare e gestisco regolarmente volumi di dati in scala terabyte e petabyte.)
BillP3rd

+1 per menzionare quei termini divertenti e che la maggior parte non li usa e usa il contesto
barlop

1
"nessuno" significa "nessuno", ragazzo, e non è magicamente cambiato dal contesto per significare qualcosa di diverso da ciò che la parola significa. È una menzogna, comunque provi a tagliarla.
JdeBP

1
@JdeBP - scusa Jdebp ma desiderare non lo faccia. L'esistenza stessa del termine kibibyte è la prova che c'era (ed è tuttora) confusione su ciò che si intende. Mi dispiace che tu sia rimasto bloccato con questo termine per un decennio (deve essere stato difficile trovare hard disk con valori di kibibyte nel 2000). Ti suggerirei anche di lavorare sulla modifica dell'articolo wiki a cui ho fatto riferimento - chiaramente devono anche sbagliare sulla mancanza di utilizzo (devono averti lasciato fuori dall'elenco dei sondaggi).
Jim B,
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.