Konwerter binarnego na ósemkowy

Binarny

System ósemkowy nadal żyje w uprawnieniach plików Unix (chmod 755), starych podręcznikach z epoki PDP i kilku łańcuchach narzędzi dla mikrokontrolerów. Ten konwerter bierze dowolny ciąg binarny, grupuje bity po trzy od prawej i mapuje każdą grupę na cyfrę ósemkową od 0 do 7 — z opcjonalnym zerem wiodącym dla języków, które traktują 0755 jako literał ósemkowy.

Jak konwertować binarny na ósemkowy

  1. 1

    Wpisz wartość binarną

    Spacje są usuwane. Dowolna długość jest w porządku; lewa grupa jest automatycznie dopełniana zerami do trzech bitów.

  2. 2

    Grupuj bity trójkami od prawej

    `111101100` staje się `111 101 100`. Kierunek grupowania ma znaczenie — zawsze od prawej do lewej.

  3. 3

    Zmapuj każdą trójkę

    000 = 0, 001 = 1, 010 = 2, aż do 111 = 7. Każda trójka mapuje się dokładnie na jedną cyfrę ósemkową.

  4. 4

    Odczytaj i skopiuj wynik

    Wybierz surowe cyfry (`754`), zapis z zerem wiodącym (`0754`) albo zapis z `0o` dla zgodności z Python 3 i Rust.

Mapowanie trójki bitów na cyfrę ósemkową

Binarny Ósemkowy
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Przykład: uprawnienia Unix

rwxr-xr-x oznacza, że właściciel ma prawa do odczytu/zapisu/wykonania, a grupa i pozostali mają odczyt/wykonanie. W zapisie binarnym to 111 101 101, co bezpośrednio grupuje się do ósemkowego 755 — dokładnie tej liczby, którą przekazujesz do chmod.

Kiedy ósemkowy jest przydatny

  • Uprawnienia plików: chmod 644, umask 022, stat -c %a mówią ósemkowo.
  • Sekwencje ucieczki: \100 w C to ósemkowy zapis @ (64 dziesiętnie).
  • Stare kody maszynowe: PDP-8, PDP-11 i wczesna dokumentacja DEC podają kody operacji ósemkowo, bo rozmiar słowa był wielokrotnością 3 bitów.
  • Czytelność wizualna: grupowanie po trzy bity czyta się szybciej niż zapis binarny, bez pełnego alfabetu szesnastkowego.

Pułapki

  • Zero wiodące oznacza ósemkowy w C: 0755 to ósemkowe 755 (= dziesiętnie 493), a 755 to dziesiętne 755. Sprawdź język przed wklejeniem.
  • JavaScript usunął stary zapis ósemkowy: tryb ścisły odrzuca 0755. Użyj zamiast tego 0o755.
  • Kierunek grupowania: jeśli grupujesz od lewej do prawej, dostaniesz zły wynik dla każdego strumienia bitów, którego długość nie jest wielokrotnością 3.

Najczęściej zadawane pytania

Bo flagi uprawnień układają się w zgrabne grupy po trzy (odczyt, zapis, wykonanie) dla każdej roli (właściciel, grupa, pozostali). Każda trójka mapuje się 1-do-1 na cyfrę ósemkową, więc rwxr-xr-x czyta się jako 755 w jednym kroku.

Dla C, Perla i powłok używaj wiodącego 0. Dla Python 3, Rust i Swift używaj 0o. Dla chmod w wierszu poleceń nie dodawaj niczego na początku.

Liczby ujemne wymagają szerokości bitowej ze znakiem (kod uzupełnień do dwóch). Najpierw podaj szerokość; inaczej konwerter traktuje całe wejście jako bez znaku.

Nie. Konwerter dopełnia lewą grupę zerami do trzech bitów. 1111 staje się 001 111, czyli ósemkowe 17.

Powiązane narzędzia