Konverter Teks ke Oktal dan Oktal ke Teks

Tulis setiap byte teks Anda sebagai bilangan oktal tiga digit, atau ubah daftar nilai byte oktal kembali menjadi teks yang dapat dibaca. Mendukung UTF-8 dan banyak set karakter lama.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Pilih Enkode untuk mengubah teks ke oktal, atau Dekode untuk mengubah nilai oktal kembali ke teks.
  2. Ketik atau tempel masukan, atau klik Buka file untuk mengonversi byte-nya.
  3. Pilih Pemisah untuk keluaran: Spasi, Tidak ada, Koma, atau Baris baru.
  4. Salin hasilnya atau unduh sebagai file.

Apa itu oktal?

Oktal, atau Base8, menulis bilangan dengan digit 0 hingga 7. Setiap digit oktal mewakili tepat tiga bit, sehingga oktal populer pada komputer generasi awal yang ukuran word-nya kelipatan tiga, seperti PDP-8 12 bit dan PDP-10 36 bit. Saat ini oktal terutama masih dipakai dalam escape sequence dan izin file Unix.

Satu byte menyimpan nilai dari 0 hingga 255, yaitu 0 hingga 377 dalam oktal. Konverter ini menulis setiap byte masukan sebagai tepat tiga digit oktal dengan nol di depan, sehingga semua kelompok memiliki lebar yang sama dan bahkan dapat digabung tanpa pemisah. Teks terlebih dahulu diubah menjadi byte dengan pengodean teks yang dipilih: satu byte per karakter untuk ASCII biasa, dua hingga empat byte per karakter untuk aksara lain dalam UTF-8.

Escape sequence oktal

C, C++, Python, Perl, dan printf di shell memungkinkan Anda menulis satu byte sebagai garis miring terbalik yang diikuti hingga tiga digit oktal: \101 adalah huruf A dan \012 adalah line feed.

Alat ini mengeluarkan digit biasa tanpa garis miring terbalik. Untuk membuat string dengan escape, ambil keluaran yang dipisahkan spasi, ganti setiap spasi dengan garis miring terbalik, lalu tambahkan satu di depan kelompok pertama. Untuk mendekode escape sequence, lakukan sebaliknya dan ganti garis miring terbalik dengan spasi, karena decoder hanya menerima digit dan pemisah.

Izin file seperti 755 juga berupa oktal, tetapi itu bilangan, bukan teks. Untuk mengubah bilangan seperti itu ke biner atau desimal, gunakan konverter basis bilangan.

Oktal dalam kode

# Python
' '.join(f'{b:03o}' for b in 'Hi'.encode())            # '110 151'
bytes(int(o, 8) for o in '110 151'.split()).decode()   # 'Hi'

# Shell
printf '\110\151\n'        # mencetak Hi
printf 'Hi' | od -An -to1   # 110 151

Spesifikasi

Alfabet0-7
Ukuran keluaran3 digit per byte (300%)
PaddingTidak ada
StandarNotasi oktal posisional
Peka huruf besar-kecilTidak

Contoh

Masukan (UTF-8)Keluaran
Hello, World!110 145 154 154 157 054 040 127 157 162 154 144 041
Base64.is102 141 163 145 066 064 056 151 163
你好344 275 240 345 245 275

Pertanyaan yang sering diajukan

Mengapa setiap byte memiliki tiga digit oktal?

Nilai byte terbesar, 255, adalah 377 dalam oktal, sehingga tiga digit selalu cukup. Menambahkan nol di depan nilai yang lebih kecil membuat setiap kelompok memiliki lebar yang sama, dan itulah yang memungkinkan string tanpa pemisah dibagi kembali menjadi byte.

Bagaimana cara mendekode oktal tanpa spasi?

Tempel digitnya sebagai satu string tanpa jeda. Decoder membaginya menjadi kelompok tiga digit, sehingga panjangnya harus kelipatan 3. Jika ada nilai yang kurang dari tiga digit, pisahkan dengan spasi, koma, atau jeda baris.

Mengapa nilai seperti 400 ditolak?

Oktal 400 adalah 256, yang tidak muat dalam satu byte. Nilai byte yang valid berkisar dari 0 hingga 377, dan decoder melaporkan posisi setiap kelompok di luar rentang tersebut. Digit 8 dan 9 sama sekali bukan digit oktal yang valid.

Bisakah saya mendapatkan nilai oktal untuk set karakter lain?

Bisa. Pilih di menu Pengodean teks, misalnya Windows-1252 atau ISO-8859-1 untuk satu byte per karakter Eropa Barat, atau GBK atau Shift_JIS untuk teks Tionghoa dan Jepang.