Przelicznik systemów liczbowych

Przelicz liczbę całkowitą między systemem dwójkowym, ósemkowym, dziesiętnym, szesnastkowym i dowolnym systemem o podstawie do 36.

Działa w całości w twojej przeglądarce. Nic nie jest wysyłane, logowane ani przechowywane.

Spacje, podkreślniki i przedrostek 0x lub 0b są ignorowane.

Po przeliczeniu

255

Dwójkowy (2)
11111111
Ósemkowy (8)
377
Dziesiętny (10)
255
Szesnastkowy (16)
FF

Tę samą liczbę można zapisać w dowolnym systemie, a to, na który trafisz, zależy od tego, gdzie patrzysz: szesnastkowy w zrzucie pamięci, dwójkowy w masce uprawnień, ósemkowy w trybie pliku, dziesiętny we wszystkim innym. To narzędzie przelicza między nimi wszystkimi.

Jak to działa

Cyfry to 0–9, a potem A–Z, co pozwala na podstawy do 36. Wielkość liter na wejściu jest ignorowana, więc ff i FF to ta sama liczba.

Przeliczenie odbywa się przez kolejne dzielenia na samych cyfrach, zamiast najpierw zamieniać wejście na liczbę całkowitą maszyny. To ważniejsze, niż się wydaje: 64-bitowy hash czy 128-bitowy identyfikator to dokładnie ten rodzaj wartości, który ludzie wklejają do przelicznika systemów, a wszystko, co przechodzi przez liczbę zmiennoprzecinkową, jest po cichu zaokrąglane od mniej więcej szesnastu cyfr.

Tylko liczby całkowite i bez znaku minus. Ułamek w innym systemie to osobna kwestia, z własnym zaokrąglaniem, a odpowiedź na nią przy okazji dałaby wynik, który wygląda na dokładny, a nim nie jest.

Przykłady

Przypadek Dane wejściowe Wynik
Bajt w zapisie szesnastkowym ff from base 16 255 in decimal, 11111111 in binary
Uprawnienia pliku w Uniksie 755 from base 8 493 in decimal, 111101101 in binary
Większa niż liczba całkowita maszynowa, a mimo to dokładna ffffffffffffffffffffffff from base 16 79228162514264337593543950335

Najczęściej zadawane pytania

Czy obsługuje liczby większe niż 64 bity?

Tak. Arytmetyka działa na ciągu cyfr, więc długość nie jest ograniczeniem i nic nie jest zaokrąglane. Spróbuj z pełnym skrótem SHA-256 w systemie szesnastkowym i odczytaj go z powrotem w dziesiętnym.

Dlaczego liczby ujemne nie są akceptowane?

Bo sposób zapisu liczby ujemnej zależy od konwencji, której to narzędzie nie może znać: znak minus, kod uzupełnień do dwóch o określonej szerokości albo bit znaku. Ciche wybranie jednej dałoby odpowiedź pewną siebie i błędną dla pozostałych dwóch.

Czy przedrostki 0x i 0b są dozwolone?

Tak, podobnie jak spacje i podkreślniki. To notacja, a nie cyfry — 1010 1100 i 1010_1100 to ta sama liczba — więc są usuwane przed odczytem.

Dlaczego podstawa kończy się na 36?

Bo tam kończą się znaki: dziesięć cyfr i dwadzieścia sześć liter. Pójście dalej wymaga alfabetu, który trzeba najpierw uzgodnić, tak jak na swój sposób robią to Base58 i Base64.

Warto wiedzieć

  • Tylko liczby całkowite, bez znaku. Ułamek w innym systemie wymaga reguły zaokrąglania, a liczba ujemna — konwencji (znaku minus albo kodu uzupełnień do dwóch o określonej szerokości), której to narzędzie nie odgadnie z samego wejścia.
  • Cztery typowe systemy są zawsze pokazywane obok tego, o który prosisz, bo wartość, z którą chcesz porównać, zwykle jest w jednym z nich.

Wszystkie narzędzia z kategorii Kod