Konwersja bajtów na megabajty
Widziałem trzy sposoby konwersji z bajtów na megabajty:
- megabajty=bajty / 1000000
- megabajty=bajty / 1024 / 1024
- 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!
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ść.
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;)
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.
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.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
Oto co standard (SI) mówi:
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.
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ą.
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.
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.
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