Konwersja bajtów na megabajty

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

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

Ok, myślę, że #3 jest całkowicie błędne, ale widziałem to. Myślę, że #2 ma rację, ale szukam jakiegoś szanowanego autorytetu (jak W3C, ISO, NIST, itp.), aby wyjaśnić, który megabajt jest prawdziwym megabajtem. Czy ktoś może przytoczyć źródło, które wyraźnie wyjaśnia, w jaki sposób odbywa się to obliczenie?

Bonus pytanie: jeśli #2 to megabajt to jak się nazywają #1 i #3?

BTW: producenci dysków twardych nie liczą się w tej kwestii jako autorytety!

Author: James A Mohler, 2010-03-02

9 answers

Tradycyjnie przez megabajt rozumiemy drugą opcję - 1 megabajt = 220 bajtów. Ale to nie jest poprawne, ponieważ mega oznacza 1 000 000. Jest nowa standardowa nazwa dla 220 bajtów, jest to mebibyte ( http://en.wikipedia.org/wiki/Mebibyte ) i gromadzi popularność.

 94
Author: Andrey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 17:21:46

Istnieje norma IEC , która rozróżnia terminy, np. Mebibajt = 1024^2 bajtów, ale megabajt = 1000^2 (aby być kompatybilnym z jednostkami SI, takimi jak kilogramy, gdzie k/M/... oznacza 1000/1000000). W rzeczywistości większość ludzi w obszarze IT woli megabajt = 1024^2, a producenci dysków twardych wolą megabajt = 1000^2 (ponieważ rozmiary dysków twardych będą brzmieć większe niż są).

W rzeczywistości większość ludzi jest zdezorientowana przez standard IEC (mnożnik 1000) i znaczenie tradycyjne (zm. 1024). Ogólnie rzecz biorąc, nie powinieneś zakładać, co ludzie mają na myśli. Na przykład, 128 kBit/s dla MP3 zwykle oznacza 128000 bitów, ponieważ mnożnik 1000 jest najczęściej używany z bitami jednostki. Ale często ludzie wtedy nazywają 2048 kBit / s równe 2 MBit / s - mylące eh?

Więc generalnie nie ufaj jednostkom bit/bajt w ogóle;)

 20
Author: AndiDog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 17:19:18

BTW: producenci dysków twardych nie liczą się w tej kwestii jako autorytety!

Oh, tak robią (a definicja, którą zakładają z S. I. jest prawidłowa). W związku z tym, Zobacz ten post {[6] } na CodingHorror.

 15
Author: Federico A. Ramponi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-03 22:35:06

Podziel przez {[1] } do potęgi 20, (1024*1024) bajty = 1 megabajt

1024*1024 = 1,048,576   
2^20 = 1,048,576
1,048,576/1,048,576 = 1  
To jest to samo.
 8
Author: Marie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-16 20:48:46
 4
Author: AVB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 17:26:29

Użyj obliczeń, których najprawdopodobniej oczekują użytkownicy. Czy Twoi użytkownicy dbają o to, ile rzeczywistych bajtów znajduje się na dysku lub w pamięci, czy zależy im tylko na przestrzeni użytkowej? Odpowiedź na to pytanie powie Ci, które obliczenia mają największy sens.

To nie jest pytanie o precyzję, ale pytanie o użyteczność. Podaj obliczenia, które są najbardziej przydatne dla użytkowników.

 2
Author: Bryan Oakley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 17:49:27

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

 2
Author: Grant Johnson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 18:18:35

Megabajt oznacza 2^20 bajtów. Wiem, że technicznie to nie pasuje do jednostek SI, i że niektórzy ludzie wymyślili nową terminologię, która oznacza 2^20. To nie ma znaczenia. Próby zmiany języka na "Wyjaśnienie" rzeczy są skazane na porażkę.

Producenci dysków twardych używają go do oznaczenia 1,000,000 bajtów, ponieważ to właśnie oznacza W SI, więc obliczają technicznie nie kłamią (podczas gdy faktycznie są). To pod kłamstwa, cholerne kłamstwa i marketing.

 1
Author: T.E.D.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-02 17:36:05

Ogólnie rzecz biorąc, źle jest używać przedrostków dziesiętnych SI (np. kilo, mega) w odniesieniu do wielkości danych binarnych (z wyjątkiem przypadkowego użycia). Jest niejednoznaczna i powoduje zamieszanie. Aby być precyzyjnym można użyć przedrostków binarnych (np. 1 mebibajt = 1 MiB = 1024 kibibajty = 2^20 bajtów). Gdy ktoś inny używa przedrostków dziesiętnych SI dla danych binarnych, musisz uzyskać więcej informacji, zanim będziesz mógł wiedzieć, co to znaczy.

 0
Author: Steven Hultgren,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-03 16:57:44