Tekst na ósemkowy

Ósemkowy to zapomniany kuzyn szesnastkowego: system liczbowy o podstawie 8, gdzie każda cyfra reprezentuje dokładnie 3 bity. Uniksowe uprawnienia plików (755, 644) zapisuje się ósemkowo, a każdy znak ma kod ósemkowy tak samo jak dziesiętny i szesnastkowy. Wklej tekst, a ten konwerter zwróci kod ósemkowy dla każdego bajtu; wklej kody ósemkowe rozdzielone spacjami i odzyskaj oryginalny tekst.

Jak przekonwertować tekst na ósemkowy

  1. 1

    Wpisz tekst

    Zwykłe znaki; dla danych spoza ASCII zakłada się kodowanie UTF-8.

  2. 2

    Każdy bajt staje się jednym kodem ósemkowym

    `A` = 65 dziesiętnie = `101` ósemkowo. `Z` = 90 = `132`. Spacja = 32 = `40`.

  3. 3

    Kody są rozdzielone spacjami

    Kody bajtów łączone są pojedynczymi spacjami (`Hi` staje się `110 151`). Nie dodaje się zer wiodących.

  4. 4

    Dekoduj, wklejając ósemkowy

    Przełącz na Ósemkowy → Tekst i wklej wartości ósemkowe rozdzielone spacjami; każda wartość od 0 do 255 staje się jednym bajtem.

Szybkie przykłady ósemkowe

Znak Dziesiętnie Ósemkowo Binarnie
A 65 101 1000001
a 97 141 1100001
0 48 60 0110000
spacja 32 40 0100000
\n 10 12 0001010

Dlaczego ósemkowy wciąż ma znaczenie

Większość nowoczesnych systemów woli szesnastkowy, bo dwie cyfry szesnastkowe czysto równają się jednemu bajtowi. Ósemkowy zalega w kilku miejscach:

  • Uniksowe uprawnienia plików: chmod 755 oznacza właściciel = 7 (rwx), grupa = 5 (r-x), inni = 5 (r-x). Każda cyfra to trzy bity uprawnień.
  • Sekwencje ucieczki C/Python: \101 w literale ciągu to A. Wiodące zero w literałach całkowitych C (int x = 0755) jest interpretowane jako ósemkowy, znana pułapka.
  • Systemy wbudowane i retro: starsze architektury 12-, 18- i 36-bitowe ładnie pasowały do ósemkowego.
  • Wartości umask: umask 022 ustawia domyślną maskę uprawnień plików na 755.

Tabela uprawnień plików

Cyfra ósemkowa Uprawnienia Binarnie
0 --- 000
1 --x 001
2 -w- 010
3 -wx 011
4 r-- 100
5 r-x 101
6 rw- 110
7 rwx 111

Więc chmod 644 = właściciel rw-, grupa r--, inni r--, domyślne dla czytelnego pliku tekstowego.

Pułapki

  • Wiodące zera mają znaczenie w C. int a = 010; ustawia a na 8, nie 10. Python 3 to porzucił; zawsze używaj zamiast tego 0o10.
  • Ósemkowy używa tylko cyfr 0-7. 8 i 9 są nieprawidłowe w ósemkowym. Jeśli je widzisz, źródło nie jest ósemkowe.
  • Bajty Unicode rosną w ósemkowym. Emoji UTF-8 (4 bajty) staje się 4 trzycyfrowymi kodami ósemkowymi, dwanaście znaków. Szesnastkowy miałby osiem. Szesnastkowy wygrywa dla większości celów wyświetlania.

Najczęściej zadawane pytania

Zasadniczo nigdy, chyba że masz do czynienia z uniksowymi uprawnieniami lub sekwencjami ucieczki w ciągach C w formacie \NNN. Szesnastkowy jest bardziej zwięzły i łatwiejszy do odczytania bajt po bajcie.

Bo każda cyfra ósemkowa odpowiada dokładnie trzem bitom uprawnień (odczyt, zapis, wykonanie). Notacja została wbudowana w AT&T Unix w 1971 roku i nigdy nie odeszła, elegancko mapuje się na bazowy wzorzec bitowy.

Tak. Przełącz na Ósemkowy → Tekst i wklej wartości ósemkowe rozdzielone spacjami (na przykład 110 151). Każda wartość od 0 do 255 zamienia się z powrotem na jeden bajt, więc znaki UTF-8 zajmujące wiele bajtów dekodują się z pojedynczych kodów bajtów.

Twój tekst jest wysyłany na nasz serwer wyłącznie w celu wykonania konwersji i nie jest przechowywany ani rejestrowany.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach