Binär till oktal-konverterare

Binär

Oktalt lever fortfarande i Unix-filrättigheter (chmod 755), gamla PDP-erans manualer och några mikrokontroller-toolchains. Den här konverteraren tar valfri binär sträng, grupperar bitarna tre och tre från höger och mappar varje grupp till en bas 8-siffra mellan 0 och 7 — med valfritt inledande nollprefix för språk som behandlar 0755 som en oktal literal.

Så konverterar du binärt till oktalt

  1. 1

    Ange det binära värdet

    Mellanslag tas bort. Valfri längd fungerar; den vänstra gruppen nollpaddas automatiskt till tre bitar.

  2. 2

    Gruppera bitar i treor från höger

    `111101100` blir `111 101 100`. Gruppens riktning spelar roll — alltid höger-till-vänster.

  3. 3

    Mappa varje triplett

    000 = 0, 001 = 1, 010 = 2, upp till 111 = 7. Varje triplett mappar till exakt en oktal siffra.

  4. 4

    Läs och kopiera resultatet

    Välj råa siffror (`754`), ett inledande nollprefix (`0754`) eller ett `0o`-prefix (`0o754`) för kompatibilitet med Python 3 och Rust.

Triplett till oktal-mappning

Binärt Oktalt
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Exempel: Unix-rättigheter

rwxr-xr-x betyder att ägaren har läs/skriv/kör, medan grupp och andra har läs/kör. I binärt är det 111 101 101, vilket grupperas direkt till oktalt 755 — exakt talet du skickar till chmod.

När oktalt är användbart

  • Filrättigheter: chmod 644, umask 022, stat -c %a talar alla oktalt.
  • Escape-sekvenser: \100 i C är oktalt för @ (64 decimal).
  • Äldre maskinkoder: PDP-8, PDP-11 och tidiga DEC-dokument listar opkoder oktalt eftersom deras ordstorlek var en multipel av 3 bitar.
  • Visuell tydlighet: trebitsgruppering läses snabbare än binärt utan hexadecimalsystemets fullständiga alfabet.

Saker att se upp med

  • Inledande nolla betyder oktalt i C: 0755 är oktalt 755 (= decimal 493), 755 är decimal 755. Kontrollera ditt språk innan du klistrar in.
  • JavaScript tog bort äldre oktalt: strikt läge avvisar 0755. Använd 0o755 i stället.
  • Grupperingsriktning: om du grupperar vänster-till-höger får du fel svar för varje bitström vars längd inte är en multipel av 3.

Vanliga frågor

För att rättighetsflaggor kommer i prydliga grupper om tre (läsa, skriva, köra) per roll (ägare, grupp, övriga). Varje triplett mappar 1-till-1 till en oktal siffra, så rwxr-xr-x läses som 755 i ett steg.

För C, Perl och shells används en inledande 0. För Python 3, Rust och Swift används 0o. För chmod på kommandoraden används inget prefix.

Negativa tal kräver en bitbredd med tecken (tvåkomplement). Ange bredden först; annars behandlar konverteraren all indata som teckenlös.

Nej. Konverteraren nollpaddar den vänstra gruppen upp till tre bitar. 1111 blir 001 111, vilket är oktalt 17.

Relaterade verktyg