Konwertowanie bajtów na megabajty

103

Widziałem trzy sposoby wykonywania konwersji z bajtów na megabajty:

  1. megabajty = bajty / 1000000
  2. megabajty = bajty / 1024/1024
  3. megabajty = bajty / 1024/1000

Ok, myślę, że numer 3 jest całkowicie błędny, ale widziałem to. Myślę, że punkt 2 ma rację, ale szukam jakiegoś szanowanego autorytetu (takiego jak W3C, ISO, NIST itp.), Aby wyjaśnić, który megabajt to prawdziwy megabajt. Czy ktoś może przytoczyć źródło, które wyraźnie wyjaśnia, w jaki sposób wykonuje się te obliczenia?

Pytanie dodatkowe: jeśli nr 2 to megabajt, jakie są nazywane numery 1 i 3?

BTW: Producenci dysków twardych nie liczą się jako autorytety w tej sprawie!

Użytkownik1
źródło
3
Producenci dysków twardych nie liczą się jako władz na ten jeden, o ile ich wykorzystania megabajta oznaczać sensie # 1 napędza akceptację tej konwersji. Należy jednak pamiętać, że systemy operacyjne Microsoft nadal używają sensu nr 2.
Michael Petrotta,
3
Numer 3 należy nazwać megabajtem dyskietek. Dyskietki 3½-calowe były dość godne uwagi dzięki używaniu tego (i nie przypominam sobie, abym widział je nigdzie indziej).
Michael Madsen
16
I obowiązkowo: xkcd.com/394
Seva Alekseyev
4
Człowieku, o człowieku. Pomiędzy tym a kodowaniem tekstu czasami rozpaczam z powodu naszej nieomylnej zdolności dodawania skomplikowanych załamań do najbardziej podstawowych rzeczy.
Paul D. Waite
4
Producenci dysków twardych najprawdopodobniej używają numeru 1, aby uzyskać najwyższą liczbę. Dla GB różnica wynosi 7%, a dla TB 10%.
Peter Mortensen,

Odpowiedzi:

116

Tradycyjnie przez megabajt mamy na myśli drugą opcję - 1 megabajt = 2 20 bajtów. Ale w rzeczywistości nie jest to poprawne, ponieważ mega oznacza 1 000 000. Jest nowa standardowa nazwa dla 2 20 bajtów, jest to mebibajt ( http://en.wikipedia.org/wiki/Mebibyte ) i zyskuje na popularności.

Andrey
źródło
10
Zgadzam się z tym wszystkim, z wyjątkiem sugestii, że zyskuje on dużą popularność. Dzielenie się myślami 1024 = K i przyjaciółmi jest skutecznie nietykalne. Kiedy ludzie zaczną mówić „cracker” zamiast „hacker”, wróć do mnie.
TED
5
Nie zamierzam głosować za heretycką wzmianką o „mebibajcie”, ale wymaga to dużo wysiłku.
aehiilrs
3
@TED: w rzeczywistości użycie słowa „haker” w znaczeniu „cracker” jest doskonałym przykładem kultury popularnej, która zastępuje sposób, w jaki preferowaliby maniacy.
Michael Petrotta,
2
to było moje osobiste odczucie, że mebibajt zyskuje na popularności, może się mylę. widziałem na niektórych dość popularnych rozmiarach stron pobierania pokazanych w MiB i KiB.
Andrey
1
Cóż, zgadzam się z tobą i używam również mega 10-base i 2-base kibi i mebi. To jest norma IEC dotycząca stosowania metrycznego: jest ostateczna i nie ma sensu go przeskakiwać.
Zan Lynx,
28

Istnieje norma IEC, która rozróżnia te terminy, np. Mebibyte = 1024 ^ 2 bajty, ale Megabajt = 1000 ^ 2 (aby zachować zgodność z jednostkami SI, takimi jak kilogramy, gdzie k / M / ... oznacza 1000/1000000). W rzeczywistości większość ludzi z obszaru IT woli Megabajt = 1024 ^ 2, a producenci dysków twardych będą preferować Megabajt = 1000 ^ 2 (ponieważ rozmiary dysków twardych będą brzmiały większe niż są).

W rzeczywistości większość ludzi jest zdezorientowana standardem IEC (mnożnik 1000) i tradycyjnym znaczeniem (mnożnik 1024). Generalnie nie powinieneś zakładać, co ludzie mają na myśli. Na przykład 128 kBit / s dla plików MP3 zwykle oznacza 128000 bitów, ponieważ mnożnik 1000 jest najczęściej używany z bitami jednostkowymi. Ale często ludzie dzwonią wtedy do 2048 kBit / s równych 2 MBit / s - mylące, co?

Dlatego generalnie nie ufaj w ogóle jednostkom bit / bajt;)

AndiDog
źródło
18

BTW: Producenci dysków twardych nie liczą się jako autorytety w tej sprawie!

Aha, tak (i ​​definicja, jaką przyjmują z SI jest poprawna). Jeśli chodzi o podobny problem, zobacz ten post w witrynie CodingHorror.

Federico A. Ramponi
źródło
4
Przykro nam, słabszy głos, ale ich definicja Mega JEST właściwa, bez względu na to, co myślą programiści. Mogę żyć z M = 2 ^ 20, dobrze, ale to tylko z powodów historycznych.
Federico A. Ramponi
+1 za trudność stojącą z firmami HD i entuzjastami standardów SI przeciwko wszystkim innym!
Jeffrey L Whitledge
11
Dzięki Jeffrey :), ale to nie tylko firmy HD: Twój procesor ma 2600 MHz; Twój procesor matematyczny wykonuje XY Mflops; Ethernet ma 100 Mbit / s; Twój aparat ma 5 megapikseli; Prędkość 1x Blu-ray to 36 Mbit / s ... Wszystkie te „M” oznaczają 10 ^ 6, a nie 2 ^ 20.
Federico A. Ramponi
-1 Nie jestem pewien, czy rozumiem tę odpowiedź. Który producent dysków twardych podał definicję? Nie sądzę, że CodingHorror produkuje dyski twarde? Szukam autorytetu, a producent dysków twardych miałby zbyt duże uprzedzenia, aby być obiektywnym.
Użytkownik 1
1
„Organem” wspierającym M = 10 ^ 6 jest Międzynarodowe Biuro Miar i Wag. O ile wiem, nie ma „autorytetu”, poza zwyczajami, wspierającymi M = 2 ^ 20.
Federico A. Ramponi
16

Podziel przez 2do potęgi 20, (1024*1024)bajtów = 1megabajtów

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  

To jest to samo.

Marie
źródło
3

Odpowiedź jest taka, że ​​numer 1 jest poprawny technicznie w oparciu o prawdziwe znaczenie przedrostka Mega, jednak (aw życiu zawsze jest jednak) matematyka dla tego nie wychodzi tak dobrze w bazie 2, czyli jak liczą się komputery , więc numer 2 jest tym, czego ludzie naprawdę używają.

Grant Johnson
źródło
2

Użyj obliczeń, których najprawdopodobniej spodziewają się Twoi użytkownicy. Czy Twoim użytkownikom zależy na tym, aby wiedzieć, ile rzeczywistych bajtów znajduje się na dysku, w pamięci lub czymkolwiek, czy też zależy im tylko na dostępnej przestrzeni? Odpowiedź na to pytanie powie ci, które obliczenia są najbardziej sensowne.

To nie jest kwestia precyzji, ale kwestia użyteczności. Podaj obliczenia, które są najbardziej przydatne dla użytkowników.

Bryan Oakley
źródło
1

Megabajt oznacza 2 ^ 20 bajtów. Wiem, że technicznie rzecz biorąc, nie pasuje to do jednostek SI, i że niektórzy ludzie wymyślili nową terminologię, oznaczającą 2 ^ 20. Nic z tego nie ma znaczenia. Wysiłki zmierzające do zmiany języka w celu „wyjaśnienia” rzeczy są skazane na niepowodzenie.

Producenci dysków twardych używają tego do określenia 1 000 000 bajtów, ponieważ to właśnie oznacza w SI, więc technicznie rzecz biorąc, uważają, że nie kłamią (podczas gdy w rzeczywistości są). To podpada pod kłamstwa, cholerne kłamstwa i marketing.

PRZETRZĄSAĆ
źródło
0

Ogólnie rzecz biorąc, używanie dziesiętnych prefiksów SI (np. Kilo, mega) w odniesieniu do binarnych rozmiarów danych (z wyjątkiem zwykłego użycia) jest niewłaściwe. Jest niejednoznaczny i powoduje zamieszanie. Aby być precyzyjnym, możesz użyć przedrostków binarnych (np. 1 mebibajt = 1 MiB = 1024 kibibajtów = 2 ^ 20 bajtów). Gdy ktoś inny używa dziesiętnych przedrostków SI dla danych binarnych, musisz uzyskać więcej informacji, zanim będziesz wiedział, o co chodzi.

Steven Hultgren
źródło