Czy to prawda, że ​​1 MB może oznaczać albo 1000000 bajtów, 1024000 bajtów, albo 1048576 bajtów? [duplikować]

63

Możliwy duplikat:
Jaka jest różnica między kibibajtem, kilobitem i kilobajtem?

Jeśli 1 KB (kilobajt) może oznaczać 1000 bajtów lub 1024 bajty,

A 1 MB (megabajt) może oznaczać 1000 KB lub 1024 KB,

czy to nie znaczy, że 1 MB może oznaczać którykolwiek z czterech poniższych elementów? :

  1. 1000 × 1000 = 1000000 bajtów

  2. 1000 × 1024 = 1024000 bajtów

  3. 1024 × 1000 = 1024000 bajtów

  4. 1024 × 1024 = 1048576 bajtów

A może 2. i 3. nie są akceptowane, więc 1 MB może oznaczać tylko 1000000 bajtów z 1048576 bajtów?

Pacerier
źródło
3
Czy wiesz, że jest −0 (zero ujemne) i +0 (zero dodatnie)? en.wikipedia.org/wiki/Signed_zero
Aki
4
Jedyne miejsce, w którym widziałem różne prefiksy, to dyskietki 1.44 [coś, co nie jest mebibajtem i nie jest megabajtem].
AndrejaKo
Aki tak, ale nie rozumiem, co próbujesz powiedzieć?
Pacerier
„Jeśli liczby nie są piękne, nie wiem, co jest”. - Paul Erdős
Aki
4
Proszę „kB”, a nie „KB”.
Andreas Rejbrand

Odpowiedzi:

107

Po pierwsze, istnieją dwa typy przedrostków, gdy mówimy o informacjach cyfrowych (odczytanych bajtach ): przedrostki SI i przedrostki binarne .

Przedrostki SI

Prefiksy SI to potęgi 1000 ( 1 000 1 , 1 000 2 , 1 000 3 itd.):

  • 1 kB = 1 kilobajt = 1000 1 bajt = 1000 bajtów;
  • 1 MB = 1 megabajt = 1000 2 bajty = 1 000 000 bajtów;
  • 1 GB = 1 gigabajt = 1 000 3 bajtów = 1 000 000 000 bajtów;
  • i tak dalej .

Jak widać, tylko symbole SI mega i powyżej są pisane wielkimi literami. Dlatego KB nie jest prawidłowym prefiksem .

Prefiksy binarne

Binarne prefiksy są moce 1024 (1024 1 , 1024 2 , 1024 3 , itd.):

  • 1 KiB = 1 kibibajt = 1024 1 bajtów = 1024 bajtów;
  • 1 MiB = 1 mebibajt = 1 024 2 bajty = 1 048 576 bajtów;
  • 1 GiB = 1 gibibajt = 1 024 3 bajty = 1 073 741 824 bajtów;
  • i tak dalej .

Jak widać tutaj, każdy symbol binarny jest pisany wielkimi literami, a przed symbolem B dodawana jest mała litera i, aby wskazać, że mówimy o kibibajtach zamiast kilobajtów, mebibajtach zamiast megabajtów itp.


Jednak prefiksy binarne nie są powszechnie używane, system Windows w ogóle ich nie używa.

To, co się tu dzieje, polega na tym, że Windows mówi nam, że dysk twardy ma pojemność 300 066 795 520 bajtów, co według systemu Windows wynosi 279 GB. Wiemy jednak, że jeśli 1 000 000 000 bajtów = 1 GB, 300 066 795 520 bajtów = ~ 300 GB = ~ 279,5 GiB .

Dlatego jeśli widzisz 1 KB (co jest złe, pamiętaj) lub 1 MB, załóż, że mówimy odpowiednio o 1 kibibajcie i 1 mebibajcie. Kb , kb , Gb , gb itp. Są również częste, mimo że reprezentują bity (8 bitów = 1 bajt).


W porządku , w żadnym wypadku 1 KB lub 1 MB nie może mieć wielu wartości, nawet jeśli (złe) użycie wydaje się wskazywać na coś przeciwnego.

poważne
źródło
3
Być może powinieneś dodać, że mówiąc o szybkościach przesyłania danych (w bitach / s), zwykle używa się prefiksów base-10, np. Gb / s tak naprawdę oznacza „miliard bitów na sekundę”.
Frank
3
Prefiksy binarne są stosunkowo nowe i nadal bardzo często używa się prefiksów SI w odniesieniu do potęg 2. 2. Myślę, że wiele osób nawet nie jest świadomych prefiksów binarnych. @Novox ma rację: nawet ludzie, którzy używają GB, oznaczają 1048576 bajtów pamięci, zwykle używają Gb / s do oznaczania 1000000000 bitów na sekundę. Wynalazek prefiksów binarnych nie spowodował, że wszystkie zastosowania były spójne.
Keith Thompson
5
@kubanczyk: Nie zgadzam się, że to lenistwo - ale lenistwo niekoniecznie musi być czymś złym. My muszą sposób w odniesieniu do składowania, w jednostkach 1024, 1048576 lub 1073741824 bajtów, a przed (względnie ostatniej) wynalazku binarnym przedrostków (Ki, MI, Gl), ponownie za pomocą przedrostków SI (K, M, G) był jedynym rozsądnym sposobem, aby to zrobić. Robiliśmy to przez tyle lat, że prefiksy K, M, G są nadal niejednoznaczne. Lepiej byłoby używać konsekwentnie prefiksów binarnych i SI od samego początku, ale tak się nie stało.
Keith Thompson
2
@kubanczyk Nie zrozum mnie źle, jestem silnym zwolennikiem prawidłowego użytkowania urządzenia. Mimo to nie sądzę, że „to oczywiste”. Gdyby tak było, nie byłoby takich pytań, prawda?
Frank
3
Hmmm, spróbujmy na odwrót, prawda? Zobacz, co się stało z 8 bitami. Zamiast nazywać to decabitem i upierać się, że deca czasami oznacza w IT 8 nie 10, ktoś wynalazł nowy termin i nazwał go bajtem. Voila! To samo rozwiązanie było możliwe w przypadku 1024, jeśli nie 65536.
kubańczyk
14

Kilobajt jest podstawowym pomiarem 10, więc 1 kilobajt = 10 do potęgi 3 = 1000 bajtów.

Chociaż nie jest to całkiem dokładne dokładne mierzenie danych fizycznych, ponieważ są one przechowywane w formacie binarnym, który jest mierzony w podstawie 2, a zatem kibibajt został ustanowiony w 1999 r., Aby zastąpić kilobajt, gdy jest używany w kontekście informatyki, czyli 1024 bajty.

Kibibajt jest pomiarem podstawowym 2, więc 1 kibibajt = 2 do potęgi 10 = 1024 bajtów.

To samo dotyczy megabajta (1 megabajt = 10 do mocy 6 = 1000000 bajtów), którego pomiarem podstawowym 2 jest mebibajt (1 mebibajt = 2 do mocy 20 = 1048576 bajtów)

  • (1) dotyczy megabajtów
  • (2) i (3) nie są akceptowane
  • (4) dotyczy mebibajta
asdjaputra
źródło
13
Chociaż jest to technicznie poprawne, chciałbym zauważyć, że w powszechnym użyciu nikt nie mówi kibibajta lub mebibajta, a mówiąc o „kilobajtach”, ludzie odnoszą się do jednostki wyświetlanej przez system Windows lub system operacyjny, czyli kibibajtów. Jedynym miejscem, w którym regularnie widuję kilobajty używane prawidłowo, jest pojemność dysku twardego, co frustruje użytkowników bez końca.
Darth Android
4
Tak, ale tylko dlatego, że ich system operacyjny nie używa przedrostków SI „poprawnie”.
Frank
2
Mimo to MB może oznaczać 1 000 000 lub 1 048 576 bajtów . Chociaż nie jest poprawny , jest szeroko rozpowszechniony. CC @DarthAndroid
Daniel Beck
Ach, 1998 ... kiedy Pluton był planetą, a kilobajt miał 1024 bajty.
Skrymsli
9

Obecnie użycie „KB”, „MB” itp. W znaczeniu innym niż 1000 bajtów, 1000 x 1000 bajtów itp. Jest przestarzałe i sprzeczne z większością oficjalnych standardów. Nowym sposobem wyrażania 1024 bajtów, 1024 x 1024 bajtów itp. Jest KiB (kibibyte), MiB (mebibyte) itp. To bałagan, a kontekst jest niezbędny, aby zrozumieć, co to znaczy. Zobacz http://en.wikipedia.org/wiki/Kibibyte omówienie tych zagadnień.

kreemoweet
źródło
7

Prawdopodobnie nie, ponieważ byłoby niespójne stosowanie prefiksów w obrębie jednej liczby .

Chociaż przedrostek SI k oznacza 1000, ale w IT jest często używany jako 1024 (z niektórymi zalecanymi przedrostkami binarnymi ), nie ma sensu alternatywę między tymi znaczeniami w tej samej liczbie .

Daniel Beck
źródło
@JdeBP: Interesująca notatka. To by były „prawidłowe” (w sensie podstawa 2) powiedzieć 1440 KB. Nigdy nie myślałem / nie zrealizowałem połączenia dwóch „systemów” w liczbie 1.44. +1.
BillP3rd
3

Masz rację w swoim pytaniu. 1 i 4 są poprawne, 2 i 3 nie.

Zasadniczo definiujesz „tysiąc”, czyli 1000 lub 1024, i używasz go do mnożenia. Nie zamieniają się nimi.

W bazie drugiej (binarnej) najbliżej, którą możesz dostać do 1000 czysto, jest 1024 (2 ^ 10). Tak właśnie myślą o komputerach, więc na przykład w pamięci (RAM) 1 MB to 1048576 bajtów.

Jednak w bazie 10 można faktycznie mieć 1000. Dyski twarde działają w ten sposób, a na dysku twardym zwykle 1 MB będzie wynosić 1000000 bajtów (chociaż półprzewodnikowy działa w trybie binarnym).

Zasadniczo sprowadza się to do tego, że komputer i urządzenie pamięci zwykle działają nieco inaczej, więc istnieją różne definicje tego samego.

James Billingham
źródło
1

Oto oferta. (Większość) dzisiejszych komputerów działa w oparciu o bazę 2, a nie bazę 10. (Tak, wiem, że wyjątki, ale naprawdę są to wyjątkowe przypadki.) komputery ogólnego przeznaczenia) używają podstawy 2 do całego przetwarzania wewnętrznego. Podstawową jednostką jest bit, który może wynosić zero lub jeden. Osiem z nich razem tworzy bajt; 16 słowo. Ogólnie rzecz biorąc, jest to ogólnie mówiąc ... Komputery 32-bitowe są ogólnie uważane za używające 32-bitowych „słów”, komputerów 64-bitowych, 64-bitowych słów i tak dalej. Czy zauważyłeś? To są wszystkie potęgi 2. Komputer z jednym „K” lub kilobajtem pamięci zawsze będzie miał 1024 bajty pamięci. Jeden megabajt pamięci zawsze oznacza 1024 x 1024 bajtów. Ponownie, wszystkie mają potęgę 2. Zatem komputer z 64 MB pamięci zawsze będzie miał 64 x 1024 x 1024 bajtów. Gdy zobaczysz komputery reklamowane na sprzedaż, pojemność pamięci (RAM) zawsze będzie oparta na potęgach 2. Nigdy nie zobaczysz karty graficznej, na przykład twierdzącej, że 1 GB pamięci RAM oznacza miliard bajtów.

Tam, gdzie wprowadzono zamieszanie i co doprowadza ludzi do szaleństwa, producenci dysków twardych, chcąc oferować coraz większe dyski, powiedzieli: „Hej! Wiesz, w innych obszarach (nie komputerach), K wynosi 1000, a M wynosi 1 000 000 ”. Gdyby na przykład kilku facetów dyskutowało o cenie sprzedaży samochodu, a jeden z nich zasugerował: „Myślę, że„ 8K ”brzmi dobrze, drugi automatycznie zrozumiałby, że„ 8K ”oznacza 8000 USD (a nie 8 192 USD). Producenci napędów dyskowych powiedzieli: „Zacznijmy reklamować nasze produkty za pomocą tych środków, aby brzmiały one lepiej”. Ale prawnicy weszli i powiedzieli: „Zaczekaj tutaj. Praktycznie każdy, kto wie,jak będą działać, będą płakać nieczysto. ”Na co sprytni faceci od reklamy odpowiedzieli:„ Nie ma problemu. Cóż, po prostu umieść małą gwiazdkę obok pojemności na pudełku i w naszej dokumentacji, która mówi coś w stylu „* 1 GB = 1 000 000 000 bajtów”. Problem rozwiązany."

Więc oto jesteśmy z całym tym zamieszaniem. Cytując z powyższego artykułu wiki, do którego odwołuje się @kreemoweet,

W większości przypadków kilobajt jest nadal używany w odniesieniu do potęgi dziesięciu, a także potęgi dwóch.

I zamieszanie trwa. Dla celów praktycznych należy prawdopodobnie założyć, że pojemności dysków oparte są na 10 podstawowych jednostkach miary. Podobnie, pojemności pamięci RAM (prawdopodobnie) zawsze będą oparte na 2 podstawowych jednostkach. W przypadku innych rodzajów urządzeń i produktów prawdopodobnie będzie to zależeć od podstawowej technologii i tego, co reklamodawcy sądzą, że mogą uciec. W końcu większe jest lepsze, prawda?

Aby uzyskać dodatkowe informacje, możesz zapoznać się z osią czasu prefiksów binarnych . Nie sprawi, że wszystko stanie się bardziej zrozumiałe, ale jest zabawną lekturą.

BillP3rd
źródło
2
jesteś pewien, że to tylko marketing? może ma to również związek ze strukturą / organizacją samego magazynu.
barlop
3
-1 To nie jest kwestia marketingowa i nie chodziło o to, aby dyski brzmiały lepiej. To szeroko rozpowszechnione, ale jednak całkowicie fałszywe wyjaśnienie. Jest to również wnioskowanie oparte na rażącej nieznajomości tematu. Międzynarodowej Komisji Elektrotechnicznej i Instytut Inżynierów Elektryków i Elektroników faktycznie określone przesłanki, czyli co zrobić z różnych dyscyplin inżynierskich mówią tym samym językiem i nie mylić się ze sobą w 1997 roku w IEEE Standards okaziciela artykułu. Jest to bardzo praktyczna kwestia inżynierska .
JdeBP
4
Moje doświadczenie w pracy dla Miniscribe, a później Maxtora w latach 80. i 90. jako inżynier, informuje mnie inaczej. Jako inżynierowie komputerowi dążymy do uzyskania potęgi 2. Bajt zawsze będzie wynosił 8 bitów. Jak dodaje @barlop, w przeciwieństwie do głównej pamięci komputera, dyski obrotowe mogą mieć bardzo zróżnicowaną strukturę / organizację. Tym bardziej, że technologia napędu rozwinęła się tak, że liczba sektorów na ścieżkę zmienia się od wewnętrznej do zewnętrznej krawędzi powierzchni zapisu. Zauważ, że sektory nadal mają 512 bajtów. (Ta nieznośna moc 2 ponownie).
BillP3rd
1
To brak doświadczenia: wąskie i krótkowzroczne spojrzenie na inżynierię. Idź i przeczytaj artykuł IEEE Standards Bearer . Jest to rodzaj mrugającego „Ale ludzie zawsze używają mocy dwojga”. myśląc, że to idzie strasznie źle, gdy uderza w większość inżynieryjną, która nie jest tak mrugana, że ​​to było i jest skierowane wprost. Jak powiedziałem, jest to praktyczna kwestia inżynierska , a jak na ironię demonstrujesz sam problem, do którego była skierowana. To nie jest marketing i nie chodzi o to, żeby coś brzmiało lepiej. To są całkowicie sfabrykowane śmieci. Nie wierz w to.
JdeBP
1
@JdeBP na pewno inżynierowie zdecydowanie wymyślili warunki kibibyte itp., Które można udowodnić. I jakiego odsetka inżynierów na świecie dysków twardych używa, nie wiem. Myślałem, że być może wiedzą kontekstowo, co rozumieją przez kilobajt, i nie potrzebowaliby kęsa kibibajta, a może nie. Wygląda na to, że BillP3rd sądzi, że będą wiedzieć i będzie to base2, a ty myślisz, że muszą określić, aby wiedzieć między sobą. Ale marketing wolałby użyć mniejszej jednostki, dziesiętnego prefiksu na opakowaniu. Zastanawiam się, czy marketing robił to już przed tym artykułem IEEE.
barlop
0

Tak, ponieważ jest to katastrofa składniowa. W tym artykule Wiki wyjaśniono problem i zamieszczono tabelę „nowych” słów, które należy zastosować. W prawdziwym świecie nikt nie używa tych terminów. Musisz użyć kontekstu, aby określić, której definicji szukasz.

Jim B.
źródło
4
-1 dla tego „nikogo”. Używam ich tutaj w prawdziwym świecie i jestem daleki od samotności.
JdeBP
1
Gdyby przeciętny konsument zapytał sprzedawcę o pojemność pamięci komputera, który zamierzali kupić, i powiedziano mu „4 gibibajty”, nie mieliby pojęcia, co to znaczy. Podobnie ogromna większość ludzi nigdy nie wypowie na głos słów „gibibyte, tibibyte, pibibyte itp.” Poważnie, spróbuj powiedzieć „gibibajt” na głos trzy razy tak szybko, jak to możliwe. Mogę powiedzieć, że przynajmniej dla siebie nigdy ich nie słyszałem. (Dla kontekstu pracuję dla dużej firmy programistycznej, o której prawdopodobnie słyszałeś i rutynowo
radzisz
+1 za wzmiankę o tych śmiesznych terminach i że większość ich nie używa i używa kontekstu
barlop
1
„nikt” oznacza „nikt”, dzieciaku, i nie jest magicznie zmieniany przez kontekst w celu oznaczenia czegoś innego niż to, co oznacza to słowo. To kłamstwo, jednak próbujesz je posiekać.
JdeBP
1
@JdeBP - przepraszam Jdebp, ale pragnienie tego nie robi. Samo istnienie terminu kibibyte jest dowodem, że doszło do (i nadal jest) zamieszania w zakresie tego, co ma na myśli. Przykro mi, że utknąłeś z tym terminem przez dekadę (w 2000 roku musiało być ciężko znaleźć dyski twarde o wartościach kibibajtów). Sugerowałbym również, abyś pracował nad edycją tego artykułu wiki, do którego się odwoływałem - najwyraźniej wszyscy oni mylą się co do braku użycia (musieli cię wykluczyć z listy ankiet).
Jim B