Wszystkie artykuły

Systemy liczbowe: po co istnieją system dwójkowy, ósemkowy i szesnastkowy

Ta sama liczba może nazywać się zupełnie inaczej w zależności od kraju — po polsku miliard to 10⁹, ale w amerykańskim angielskim „billion" oznacza właśnie tę wartość, podczas gdy w wielu krajach Europy (tzw. long scale) „bilion" to dopiero 10¹². Nazwy liczb bywają więc umowne i różne w każdym języku, ale ich zapis w systemie dwójkowym, ósemkowym czy szesnastkowym jest jednym uniwersalnym standardem, wspólnym dla każdego komputera na świecie.

Long scale kontra short scale — pułapka przy tłumaczeniu liczb

Polska, podobnie jak większość Europy, tradycyjnie trzyma się „long scale", gdzie kolejne nazwy (milion, miliard, bilion, biliard, trylion) rosną co sześć rzędów wielkości, a nie co trzy jak w angielskim „short scale". To źródło realnych błędów w tłumaczeniach finansowych czy naukowych tekstów — ale w systemach liczbowych komputera taki problem nie istnieje, bo liczba 10⁹ to zawsze ta sama wartość bez względu na to, jak się ją nazwie.

System szesnastkowy w narzędziach, które programista naprawdę otwiera

Jedna cyfra szesnastkowa odpowiada dokładnie czterem bitom, więc dwa znaki szesnastkowe kompaktowo opisują jeden bajt — kolor CSS #3A7FD9, adres MAC 00:1A:2B:3C:4D:5E czy adres pamięci widoczny w stack trace debuggera to w istocie bajty zapisane w notacji cztery razy krótszej niż binarna.

Ostatni bastion systemu ósemkowego: uprawnienia Unix

System ósemkowy niemal zniknął z codziennego użycia, ale trzyma się jednego miejsca — chmod 755. Każda cyfra ósemkowa pakuje trzy bity uprawnień (odczyt, zapis, wykonanie), więc 7 oznacza „rwx", a 5 — „r-x"; odczytanie trzech bitów naraz jest szybsze niż liczenie dziewięciu cyfr binarnych po kolei.

Do czego to się przydaje

  • Przeliczenie koloru z formatu szesnastkowego CSS na wartości dziesiętne RGB.
  • Zrozumienie binarnej reprezentacji liczby przy pracy z operacjami bitowymi.
  • Odczytanie ósemkowych uprawnień do plików w systemach Unix.

Dlaczego Base64 nie jest systemem liczbowym

Base64 jest często mylone z konwersją systemów liczbowych z powodu podobnej nazwy, ale to zupełnie inna rzecz — kodowanie dowolnych danych binarnych (np. obrazu lub pliku) do ciągu tekstowego złożonego z 64 znaków, a nie sposób zapisu pojedynczej liczby. Liczba 255 w systemie szesnastkowym to FF, ale ta sama liczba zakodowana jako pojedynczy bajt w Base64 wygląda zupełnie inaczej i służy innemu celowi — przesyłaniu danych binarnych kanałami tekstowymi.

Wypróbuj narzędzie