Adloun

La base huit sert encore à écrire les droits d'un fichier sous Unix

Exercice supplémentaire · niveau 2 · NSI (première), chapitre 1 — Représenter les entiers · D'autres bases, d'autres codages

Énoncé

La base huit sert encore à écrire les droits d'un fichier sous Unix : chmod 755, chmod 644. Traduire ces deux nombres en binaire, et expliquer pourquoi la base huit est ici plus commode que la base seize. (La base huit n'est pas au programme ; c'est la même construction que les bases deux et seize.)

Corrigé

Le principe. : un chiffre octal vaut exactement trois bits, comme un chiffre hexadécimal en vaut quatre. Or les droits Unix se lisent par groupes de trois — lecture, écriture, exécution — pour trois catégories d'utilisateurs.

755 donne donc tous les droits au propriétaire (rwx), lecture et exécution aux autres (r-x) ; 644 donne lecture et écriture au propriétaire (rw-), lecture seule aux autres (r--).

Pourquoi pas l'hexadécimal. Un chiffre hexadécimal vaut quatre bits : il chevaucherait deux catégories d'utilisateurs, et la lecture perdrait tout son sens. La base choisie doit épouser la structure de la donnée.

Contrôle machine : vers_base(depuis_base("111101101", 2), 8) rend "755".

Prolongement : en Python, 0o755 est la notation littérale des entiers en base huit, comme 0b pour le binaire et 0x pour l'hexadécimal.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.