İkiliden Sekizliye Dönüştürücü

İkili

Sekizli sistem hâlâ Unix dosya izinlerinde (chmod 755), eski PDP dönemi kılavuzlarında ve birkaç mikrodenetleyici araç zincirinde yaşıyor. Bu dönüştürücü herhangi bir ikili diziyi alır, bitleri sağdan başlayarak üçer üçer gruplar ve her grubu 0 ile 7 arasında bir sekizli rakama eşler — 0755 değerini sekizli sabit kabul eden diller için isteğe bağlı baştaki sıfır seçeneğiyle.

İkili sekizliye nasıl dönüştürülür

  1. 1

    İkili değeri girin

    Boşluklar temizlenir. Her uzunluk uygundur; en soldaki grup otomatik olarak üç bite tamamlanacak şekilde başına sıfır eklenir.

  2. 2

    Bitleri sağdan üçlü gruplara ayırın

    `111101100`, `111 101 100` olur. Gruplama yönü önemlidir — her zaman sağdan sola.

  3. 3

    Her üçlüyü eşleyin

    000 = 0, 001 = 1, 010 = 2, … 111 = 7. Her üçlü tam olarak bir sekizli rakama eşlenir.

  4. 4

    Sonucu okuyup kopyalayın

    Ham rakamları (`754`), baştan sıfırlı biçimi (`0754`) veya Python 3 ve Rust uyumu için `0o` biçimini (`0o754`) seçin.

Üçlüden sekizliye eşleme

İkili Sekizli
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7

Örnek: Unix izinleri

rwxr-xr-x, sahibin okuma/yazma/çalıştırma; grup ve diğerlerinin okuma/çalıştırma izni olduğu anlamına gelir. İkili olarak 111 101 101 eder; bu da doğrudan sekizli 755 olur — chmod komutuna verdiğiniz tam sayı.

Sekizli ne zaman yararlıdır?

  • Dosya izinleri: chmod 644, umask 022, stat -c %a hepsi sekizli konuşur.
  • Kaçış dizileri: C’de \100, @ için sekizlidir (onluk 64).
  • Eski makine kodları: PDP-8, PDP-11 ve erken DEC belgeleri işlem kodlarını sekizli listeler; çünkü sözcük boyutları 3 bitin katıydı.
  • Görsel netlik: üç bitlik gruplama, onaltılık sistemin tam alfabesine gerek kalmadan ikiliden daha hızlı okunur.

Tuzaklar

  • C’de baştaki sıfır sekizli demektir: 0755 sekizli 755’tir (= onluk 493), 755 ise onluk 755’tir. Yapıştırmadan önce dilinizi kontrol edin.
  • JavaScript eski sekizli yazımı kaldırdı: katı mod 0755 değerini reddeder. Bunun yerine 0o755 kullanın.
  • Gruplama yönü: soldan sağa gruplarsanız uzunluğu 3’ün katı olmayan her bit dizisi için yanlış cevap alırsınız.

Sık Sorulan Sorular

Çünkü izin bayrakları her rol için (sahip, grup, diğer) üçlü gruplar halinde gelir: okuma, yazma, çalıştırma. Her üçlü bire bir sekizli rakama eşlenir, bu yüzden rwxr-xr-x tek adımda 755 olarak okunur.

C, Perl ve kabuklar için başta 0 kullanın. Python 3, Rust ve Swift için 0o kullanın. Komut satırında chmod için başına bir şey eklemeyin.

Negatif sayılar işaretli bit genişliği gerektirir (ikiye tümleyen). Önce genişliği belirtin; aksi halde dönüştürücü tüm girdiyi işaretsiz kabul eder.

Hayır. Dönüştürücü en soldaki grubu üç bite tamamlayacak şekilde başına sıfır ekler. 1111, 001 111 olur; bu da sekizli 17 eder.

İlgili Araçlar