Wpis z mikrobloga

Kilka dni temu popełniłem wpis na temat liczby bitów w bajcie. Dzisiaj nadeszła pora na krótki follow-up.

Czym właściwie różni się bit od bajtu? Przecież bajt to osiem bitów! – możecie zakrzyknąć entuzjastycznie. Otóż nic bardziej mylnego.

Bit to pojęcie znacznie starsze od bajtu. To miara informacji albo inaczej miara niepewności. Wywodzi się teorii informacji, ale co naprawdę ciekawe, poprzedza słynny artykuł „A Mathematical Theory of Communication”. Tak, okazuje się, że są rzeczy w teorii informacji, które nie zostały wymyślone przez Shannona xD Zostało wprowadzone przez Hartleya w 1928 roku. Samo określenie „bit” zostało zaproponowane przez Tukeya (tego od FFT).

Zwykle widzimy bity jak coś niepodzielnego – możemy mieć 10 bitów, 42 kilobity lub 2 gigabity. Ale z matematycznego punktu widzenia, nic nie stoi na przeszkodzie, żeby mówić o 21.37 bita. Jednak, poza dręczeniem studentów telekomunikacji, podział bitów na mniejsze części raczej nie ma szerszego zastosowania.

W informatyce zwykle przyjmuje się, że na kolejne rzędy wielkości oparte są na potęgach dwójki. - na przykład jeden kilobajt to 1024 bajty (chociaż czasem producenci dysków twardych mają na ten temat inne zdanie). W telekomunikacji stosuje się tradycyjne potęgi dziesiątki. - jeden kilobit to 1000 bitów.

Bity są używane do określania ile informacji udało nam się przesłać w danym okresie czasu (na przykład jako bity na sekundę). Niestety często jest to źródłem nieporozumień. Dostawcy często reklamują swoje usługi „do x bitów / sekundę”. Ale ponieważ mniej wtajemniczeni mylą bity z bajtami i spodziewają się znacznie większej prędkości, od czasu do czasu pojawia się tradycyjne „oszukujo!”.

Jeden bit to naprawdę dość mało. Tak mało, że żeby zaadresować jeden bit informacji, potrzeba więcej niż jeden bit. Jest to, mówiąc delikatnie, niezbyt efektywne. Dlatego informatycy zaczęli łączyć bity w bajty. I tak już zostało.

#programowanie #programista15k #pracait #telekomunikacja #telcozwykopem #technologia
  • 12
  • Odpowiedz
  • 0
@brakloginuf: Załóżmy, że masz zdarzenie, które może zajść z prawdopodobieństwem x. Jeśli to zdarzenie faktycznie się wydarzy, to dostarczy log2(1/x) bitów informacji. Jeśli x = 0.5, to dostaniesz dokładnie jeden bit informacji. Ale jeśli x = 0.9, to dostaniesz tylko około 0.15 bita informacji. Może to wydawać się dość dziwne, ale jest to wykorzystywane na przykład do kompresji danych.

  • Odpowiedz
@brakloginuf: bit to ilość informacji jaką niesie zdarzenie o prawdopodobieństwie wystąpienia 1/2. Jeśli wiesz że coś może się zdarzyć z prawdopodobieństwem 50% to potrzebujesz dokładnie jednego bitu informacji aby dowiedzieć się czy się zdarzyło czy nie. Jednak jeśli wiesz że prawdopodobieństwo zdarzenia jest inne niż 50% np 90% to się robi ciekawie - w takiej sytuacji potrzebujesz… statystycznie mniej niż jednego bita. Tzn jak masz tylko jedno takie zdarzenie to potrzebujesz
  • Odpowiedz
@groman43 ostatni akapit to bzdury. W przypadku jednobitowej szyny adresowej i jednobitowej szyny danych możemy zaadresować dwa bity, tj. adresy odpowiednio 0 i 1. Dwa bity adresu i jeden bit danych to już cztery adresowalne bity, itd ¯_(ツ)_/¯
  • Odpowiedz
  • 0
@Patryk4: Nie są zapisywane "pojedyńczo". W kompresji danych cała zabawa polega na tym, że bierzesz powiedzmy 5 bitów, zmiejszach każdy z tych bitów to 0.2 bita i zapisujesz te 5 "wspólnie" jako 1 bit.
  • Odpowiedz
@groman43:

W informatyce zwykle przyjmuje się, że na kolejne rzędy wielkości oparte są na potęgach dwójki. - na przykład jeden kilobajt to 1024 bajty


@groman43: Niezupełnie. Jeden kilobajt (kB, kilobyte) to dokładnie 1000 bajtów lub inaczej 10^3 bajtów.
1024 bajty to jeden KiB (Kibi byte)) czyli 2^10 bajta.

Oczywiście w potocznej mowie oba są dosyć bliskie sobie i prefiksy kilo, mega i giga są używane na potęgę dwójki mimo ze
  • Odpowiedz