Odjechani.com.pl

Pełna wersja: Bajt bajtowi nierówny
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

tonyviroos

Bajt bajtowi nierówny

Diabeł jak zwykle tkwi w szczegółach, w tym przypadku w interpretacji zapisu jednostek pojemności. Aby to wyjaśnić, będzie potrzebna znajomość odrobiny teorii. W czasie gdy opracowywano pierwszy komputer klasy PC, na świecie od dawna obowiązywał międzynarodowy standard jednostek i miar - Układ SI (franc. Systeme International d'Unités). Opracowano go w roku 1960, przez co nie znalazła się w nim definicja jednostki wielkości pamięci komputerowej. W układzie SI poza samymi jednostkami zdefiniowano także nazwy (przedrostki) wielokrotności jednostek podstawowych. Jak wszyscy zapewne wiecie, współczesne komputery pracują w oparciu o system dwójkowy. Podstawową jednostką pamięci w komputerach jest jeden bajt, oznaczony jako 1 B. Oczywiście jest to wartość śmiesznie mała, dlatego już na początku powstało zapotrzebowanie na oznaczenia będące wielokrotnością tej podstawowej. Jako, że układ SI definiował nazwy przedrostków, do których wszyscy zdążyli się już przyzwyczaić, postanowiono zaadoptować je na potrzeby komputerów.

Niestety, w układzie SI wielokrotności zdefiniowano na podstawie liczby 10 będącej podstawą systemu dziesiętnego, używanego naturalnie przez ludzi. Komputery natomiast jak już wspominałem wcześniej pracują w systemie dwójkowym. Tutaj powstaje pewien problem: Nie można w prosty sposób zapisać komputerowych wielkości, a więc wielokrotności liczby 2 przy pomocy wielokrotności liczby 10. Rozwiązano go nieco nie elegancko, zzadoptowano tylko i wyłącznie nazwy przedrostków a nie ich podstawę. Tak powstały dwie liczby mające w teorii ten sam przedrostek, ale w praktyce różną wartość. I tak wg. układu SI "kilo" oznacza 1000, natomiast w nomenklaturze komputerowej jest to już 1024. Różnica wydawało by się niewielka, niemniej te 24 bajty, po zwielokrotnieniu w megabajtach i gigabajtach powodują "utratę" sporej ilości miejsca na dysku twardym.

Czy jest jakieś wyjście z tego zamieszania? Otóż okazuje się, że tak. Jako, że zastosowanie przedrostków z układu SI dla komputerowych wielkości jest nie tyle nieeleganckie, co w zasadzie niezgodne z ich pierwotnym przeznaczeniem, IEC (ang. International Electrotechnical Commission) zaproponowała sposób na wyeliminowanie rozbieżności w zapisie dwóch wartości. Polegał on na opracowaniu nowego zestawu przedrostków, specjalnie dla systemu dwójkowego. Ich nazwy powstały poprzez wstawienie litery "i" po znaku mnożnika (pisanego zawsze wielką literą) oraz zastąpieniu drugiej sylaby nazwy mnożnika przez "bi" (ang. binary). Przykładowo dotychczasowe GB - gigabajt, MB - megabajt, kB - kilobajt mają zastąpić binarne GiB - gibibajt, MiB - mebibajt, KiB.

Nowe przedrostki powstały w 1999r, niestety do dzisiaj nadal używamy starych oznaczeń. Być może gigant z Redmond w następnej odsłonie najpopularniejszego systemu operacyjnego zdecyduje się ich użyć, co spowoduje drastyczny wzrost ich popularności. Dziś można je spotkać w zasadzie tylko pod Linuksem.

To tyle teorii. Mam nadzieję, że po takim zastrzyku informacji nikt więcej nie będzie się dziwił, dlaczego jego dysk twardy jest mniejszy niż oczekiwał

Kucharek


No teraz wiem że bez powodu Krzyczałem na panie w sklepie i to nie raz,jak również wiem że tym lubią nas łapać wszelakich reklamach choćby przenośnych internetów bo cóż to za różnica jeden megabajt od jednego megabita:D
Już wszystko wiadomo. Zawsze sobie to tłumaczyłem własnymi teoriami ale chyba tylko ta jest prawdziwa :)
No i stąd całe zamieszanie. Zostaje jednak problem wielkości marketingowej dysków twardych. Fizycznie wygląda to tak dla dysków twardych. Kupujemy 250GB, zachodzimy do domu, format c i okazuje się, że baba w sklepie dała nam mniejszy niż kupowaliśmy. Pasowałoby reklamować :D

Jak to wygląda dla dysków o pojemności od 250GB wzwyż faktycznie? Może policzymy:
250 GB
250 000 000 000 / 1024 / 1024 / 1024 = 232,83 GB

320 GB
320 000 000 000 / 1024 / 1024 / 1024 = 298,02 GB

500 GB
500 000 000 000 / 1024/ 1024 / 1024 = 465,66 GB

640 GB
640 000 000 000 / 1024 / 1024 / 1024 = 596,04 GB

750 GB
750 000 000 000 / 1024 / 1024 / 1024 = 698,49 GB

1 TB
1 000 000 000 000 / 1024 / 1024 / 1024 = 931,32 GB

1,5 TB
1 500 000 000 000 / 1024 / 1024 / 1024 = 1396,98 GB

2 TB
2 000 000 000 000 / 1024 / 1024 / 1024 = 1862,64 GB

2,5 TB
2 500 000 000 000 / 1024 / 1024 / 1024 = 2328,30 GB

3 TB
3 000 000 000 000 / 1024 / 1024 / 1024 = 2793,96 GB

Tak więc z obliczeń możemy wnioskować, że im większy kupujemy w sklepie dysk, tym mniejszy mamy później w komputerze :P