Saya akan mencoba untuk membahas alasan mendasar mengapa itu adalah 777, bukan aaa, atau 999.
Ingatlah bahwa izin datang dalam format berikut:
u g o
rwx rwx rwx
di mana u = pengguna, g = grup, o = lainnya.
Sekarang, bayangkan Anda mewakili masing-masing grup ini sebagai biner. 1 benar, 0 salah.
Jika Anda ingin memberikan akses penuh kepada semua orang, Anda akan menetapkan izin berikut dalam biner:
u g o
rwx rwx rwx
111 111 111
Sekarang, jika Anda tahu biner, Anda akan menyadari bahwa ketika Anda mengonversi 111
dari biner ke desimal, Anda mendapatkannya 7
.
Dengan demikian, Anda dapat mewakili akses penuh sebagai 777
.
Catatan: Kami benar-benar mengonversi dari biner ke oktal. Lihat hasil edit di bawah.
Ini bekerja untuk semua mode akses lainnya juga.
Sebagai contoh, kita dapat dengan mudah mengetahui apa 555
artinya dengan mengonversikannya 5
menjadi biner, dan menuliskannya dalam format di atas. 5
dalam biner adalah 101
, jadi kami memiliki izin berikut:
u g o
r-x r-x r-x
101 101 101
5 5 5
Demikian pula, jika kami ingin memberikan semua izin kepada pengguna, tetapi hanya mengizinkan orang lain untuk membaca, kami dapat menemukan representasi angka.
u g o
rwx r-- r--
111 100 100
7 4 4
Sekarang, kita tahu bahwa 111
dalam biner adalah 7
dalam desimal, dan 100
dalam biner adalah 4
dalam desimal. Dengan demikian, izinnya adalah 744
.
Sunting:
Secara teknis, seperti yang disorot oleh @ LưuVĩnhPhúc dan @Braiam, kami mengkonversi dari biner ke oktal, seperti dijelaskan di bawah ini. Namun, representasi desimal dan oktal dari angka <8 adalah sama, jadi untuk angka biner dengan 3 digit atau kurang, representasi desimal dan oktal sama.
Ketika direpresentasikan sebagai angka oktal, daripada membaginya menjadi tiga kelompok, dan melakukan konversi biner ke desimal pada masing-masing grup, Anda dapat benar-benar menggabungkan ketiga grup menjadi satu angka biner, dan mengonversinya menjadi oktal.
Misalnya, berikut adalah beberapa konversi biner ke oktal:
0b111111111 == 0o777
0b101101101 == 0o555
0b111100100 == 0o744
Perhatikan bahwa saya menambahkan "0b" dan "0o" untuk membedakan antara angka biner dan oktal.
Jika Anda ingin bermain-main dengan ini, buka terminal, jalankan python
dan kemudian mainkan dengan perintah berikut:
oct(0b111111111)
bin(0o555)
Ingatlah untuk menambahkan "0b" atau "0o" ke angka-angka agar komputer tahu basis apa yang Anda minati. (Jika tidak, ia akan menganggap basis 10.)