İ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. Çıktı, öneksiz düz sekizli rakamlardır; diliniz başta sıfır (0755) veya 0o öneki (0o755) istiyorsa bunu kendiniz ekleyin.

İ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

    Sonuç, `754` gibi öneksiz düz sekizli rakamlardır. Hedef diliniz başta sıfır (`0754`) veya `0o` öneki (`0o754`) gerektiriyorsa kendiniz ekleyin.

Üç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.

Buradaki çıktı öneksiz düz rakamlardır. Değeri kodda kullanırken hedef dile uyun: C, Perl ve kabuklar başta 0 bekler, Python 3, Rust ve Swift 0o bekler, komut satırındaki chmod ise önek almaz.

Negatif sayılar işaretli bit genişliği gerektirir (ikiye tümleyen) ve bu dönüştürücüde genişlik seçeneği yoktur: tüm girdiyi işaretsiz kabul eder. Negatif bir değeri dönüştürmek için önce onu sabit genişlikli ikiye tümleyen bit deseni olarak yazın, sonra bu deseni dönüştürün.

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

Araç diğer dillerde mevcuttur