Konwerter systemów liczbowych

Wpisz liczbę całkowitą w systemie o dowolnej podstawie od 2 do 36 lub w Base62, aby zobaczyć ją jednocześnie w systemie dwójkowym, ósemkowym, dziesiętnym, szesnastkowym, Base36 i Base62. Liczby dowolnej długości są przeliczane dokładnie.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wpisz liczbę do przeliczenia w polu „Liczba”.
  2. W polu „Podstawa wejściowa” wybierz podstawę, w której zapisano liczbę: od 2 do 36 lub Base62.
  3. Odczytaj wynik jednocześnie w systemie dwójkowym, ósemkowym, dziesiętnym, szesnastkowym, Base36 i Base62.
  4. Jeśli potrzebujesz innej podstawy, wybierz ją w polu „Własna podstawa”.

Liczby, a nie bajty

To narzędzie przelicza wartość liczby. Liczba dziesiętna 255 to 11111111 w systemie dwójkowym, 377 w ósemkowym, ff w szesnastkowym i 73 w Base36.

Kodowania bajtów, takie jak Base16 i Base2, robią coś innego: kodują tekst lub pliki. Tekst 255 to trzy znaki zapisane jako bajty 32 35 35 w hex lub 00110010 00110101 00110101 w zapisie binarnym. Do zapisu hex liczby używaj tej strony, a do zapisu hex znaków lub pliku koderów bajtów.

Jak działają pozycyjne systemy liczbowe

W każdym systemie cyfra ma wagę równą podstawie podniesionej do potęgi o wykładniku równym numerowi jej pozycji, liczonemu od prawej i zaczynając od zera. Hex ff to 15 × 16 + 15 = 255, a binarne 11111111 to 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. W systemach o podstawie większej niż 10 kolejne cyfry oznacza się literami, więc w Base36 a oznacza 10, a z 35. Base62 dodaje też litery drugiej wielkości, więc wielkie i małe litery mają w nim różne wartości.

Jedna cyfra szesnastkowa odpowiada dokładnie 4 bitom, a jedna cyfra ósemkowa 3 bitom. Dlatego programiści używają systemu szesnastkowego i ósemkowego jako skróconego zapisu binarnego: 1111 1111 zamienia się grupa po grupie w ff.

Duże i ujemne liczby

Konwerter używa liczb całkowitych o dowolnej precyzji (JavaScript BigInt), więc długie liczby pozostają dokładne. Wiele kalkulatorów i zwykłe liczby JavaScript tracą precyzję powyżej 9007199254740991 (2 do potęgi 53 minus 1). Na przykład parseInt('ffffffffffffffff', 16) zwraca 18446744073709552000, a prawidłowa wartość, czyli największa 64-bitowa liczba całkowita bez znaku, to 18446744073709551615.

Liczba ujemna jest przeliczana razem ze znakiem minus, więc -255 to w hex -ff. Nie jest to kod uzupełnień do dwóch używany w pamięci dla liczb całkowitych o stałej szerokości. Aby go uzyskać, najpierw dodaj 2 do potęgi równej szerokości: dla 8 bitów -1 + 256 = 255, czyli ff. Obsługiwane są tylko liczby całkowite, nie ułamki. Wszystko działa w przeglądarce.

Konwersja systemów liczbowych w kodzie

// JavaScript
parseInt('ff', 16);                          // 255
(255).toString(2);                           // '11111111'
BigInt('0xffffffffffffffff').toString(10);   // '18446744073709551615'

# Python
int('ff', 16)                  # 255
bin(255), oct(255), hex(255)   # ('0b11111111', '0o377', '0xff')

Najczęściej zadawane pytania

Jak przeliczyć liczbę binarną na dziesiętną?

Wpisz liczbę binarną, w polu „Podstawa wejściowa” wybierz „Binarny (2)” i odczytaj wynik dziesiętny. Ręcznie: zsumuj wagi pozycji wszystkich cyfr 1, np. binarne 1010 to 8 + 2 = 10.

Jak przeliczyć liczbę dziesiętną na szesnastkową?

Wpisz liczbę przy wybranej opcji „Dziesiętny (10)” i odczytaj wynik szesnastkowy. Ręcznie: dziel wielokrotnie przez 16 i zapisz reszty w odwrotnej kolejności. 255 podzielone przez 16 to 15 reszty 15, co daje ff.

Czy wielkość liczby jest ograniczona?

Nie ma stałego limitu. Narzędzie używa arytmetyki BigInt, więc liczba złożona z setek cyfr jest przeliczana dokładnie. Bardzo długie liczby po prostu wymagają nieco więcej czasu.

Dlaczego zapis hex liczby 255 różni się tu od wyniku kodera Base16?
Ta strona przelicza liczbę 255, czyli ff. Koder Base16 koduje tekst 255, czyli trzy znaki, których bajty to 32 35 35. Wybierz narzędzie odpowiednie do swoich danych.
Czy można przeliczać liczby z częścią ułamkową?

Nie. Konwerter obsługuje tylko liczby całkowite. Ułamki takie jak 0,1 często nie mają dokładnej reprezentacji w systemie o innej podstawie, więc wykraczają poza jego zakres.