Text till oktal

Oktal är hexadecimalens bortglömda kusin: ett talsystem i bas 8 där varje siffra representerar exakt 3 bitar. Unix-filrättigheter (755, 644) skrivs i oktal, och varje tecken har en oktal kod precis som det har en decimal och en hexadecimal. Klistra in text så returnerar den här omvandlaren den oktala koden för varje byte; klistra in oktala koder åtskilda av mellanslag och få originaltexten tillbaka.

Så konverterar du text till oktal

  1. 1

    Ange text

    Vanliga tecken; UTF-8-kodning antas för icke-ASCII-indata.

  2. 2

    Varje byte blir en oktal kod

    `A` = 65 decimalt = `101` oktalt. `Z` = 90 = `132`. Ett mellanslag = 32 = `40`.

  3. 3

    Koderna åtskiljs av mellanslag

    Bytekoderna fogas samman med enkla mellanslag (`Hi` blir `110 151`). Inga inledande nollor läggs till.

  4. 4

    Avkoda genom att klistra in oktal

    Växla till Oktal → Text och klistra in oktala värden åtskilda av mellanslag; varje värde från 0 till 255 blir en byte.

Snabba oktala exempel

Tecken Decimalt Oktalt Binärt
A 65 101 1000001
a 97 141 1100001
0 48 60 0110000
mellanslag 32 40 0100000
\n 10 12 0001010

Varför oktal fortfarande spelar roll

De flesta moderna system föredrar hex eftersom två hex-siffror motsvarar exakt en byte. Oktal lever kvar på ett fåtal ställen:

  • Unix-filrättigheter: chmod 755 betyder ägare = 7 (rwx), grupp = 5 (r-x), övriga = 5 (r-x). Varje siffra är tre rättighetsbitar.
  • Escape-sekvenser i C/Python: \101 i en stränglitteral är A. En inledande nolla i C-heltalslitteraler (int x = 0755) tolkas som oktal, en känd fälla.
  • Inbyggda och retrosystem: äldre 12-, 18- och 36-bitars arkitekturer passade fint ihop med oktal.
  • umask-värden: umask 022 sätter standardmasken för filrättigheter till 755.

Tabell över filrättigheter

Oktal siffra Rättigheter Binärt
0 --- 000
1 --x 001
2 -w- 010
3 -wx 011
4 r-- 100
5 r-x 101
6 rw- 110
7 rwx 111

Så chmod 644 = ägare rw-, grupp r--, övriga r--, standarden för en läsbar textfil.

Fallgropar

  • Inledande nollor spelar roll i C. int a = 010; sätter a till 8, inte 10. Python 3 slopade detta; använd alltid 0o10 i stället.
  • Oktal använder bara siffrorna 0-7. 8 och 9 är ogiltiga i oktal. Om du ser dem är källan inte oktal.
  • Unicode-byte blir större i oktal. En UTF-8-emoji (4 byte) blir 4 tresiffriga oktala koder, tolv tecken. I hex skulle det vara åtta. Hex vinner för de flesta visningsändamål.

Vanliga frågor

I stort sett aldrig, om du inte har att göra med Unix-rättigheter eller C-string-escapes som använder \NNN-format. Hex är mer kompakt och lättare att läsa byte för byte.

Eftersom varje oktal siffra motsvarar exakt tre rättighetsbitar (läs, skriv, kör). Notationen bakades in i AT&T Unix 1971 och försvann aldrig, den mappar elegant mot det underliggande bitmönstret.

Ja. Växla till Oktal → Text och klistra in oktala värden åtskilda av mellanslag (till exempel 110 151). Varje värde från 0 till 255 blir en byte igen, så UTF-8-tecken på flera byte avkodas från sina enskilda bytekoder.

Din text skickas till vår server enbart för att utföra konverteringen och lagras eller loggas inte.

Relaterade verktyg

Verktyget finns på andra språk