NSI · premiere speGratuit
Chapitre 1 — Représentation des données : types et valeurs de base
L'essentiel en 30 secondes
Un ordinateur ne manipule que des 0 et des 1 (bits). Tout nombre entier se convertit en binaire (base 2) ou en hexadécimal (base 16). Les entiers relatifs utilisent le complément à deux. Les flottants sont des approximations : ne jamais tester l'égalité stricte entre deux flottants. Les booléens (True/False) sont à la base de toute logique informatique.
Notions clés
- Bit / Octet
- Un bit vaut 0 ou 1. Un octet = 8 bits, peut représenter 256 valeurs (0 à 255).
- Binaire (base 2)
- Système de numération utilisant uniquement 0 et 1. Chaque rang représente une puissance de 2.
- Hexadécimal (base 16)
- Système utilisant 0-9 et A-F. Un chiffre hexa = 4 bits. Préfixe 0x en Python.
- Complément à deux
- Méthode pour coder les entiers relatifs en binaire. Sur n bits : de -2^(n-1) à 2^(n-1)-1.
- Flottant (float)
- Représentation approchée d'un nombre réel selon la norme IEEE 754 : signe, exposant, mantisse.
- Booléen
- Type à deux valeurs : True ou False. Opérateurs : and, or, not.
Formules
Conversion décimal → binaire
Condition : bin() renvoie une chaîne préfixée par 0b
Conversion décimal → hexadécimal
Condition : hex() renvoie une chaîne préfixée par 0x
Conversion binaire/hexa → décimal
Condition : int(chaine, base) pour convertir vers décimal
Nombre de valeurs sur n bits
Condition : Sur n bits, on code 2^n valeurs distinctes (de 0 à 2^n - 1 en non signé)
Plage en complément à deux sur n bits
Condition : Ex : sur 8 bits, de -128 à 127
A retenir
- Sur n bits non signés : valeurs de 0 à 2^n - 1. Sur n bits signés (complément à deux) : de -2^(n-1) à 2^(n-1) - 1.
- Les flottants sont des APPROXIMATIONS : 0.1 + 0.2 != 0.3 en Python. Ne jamais comparer deux flottants avec ==.
- 1 chiffre hexadécimal = 4 bits exactement. Donc 2 chiffres hexa = 1 octet.
Erreurs classiques
Erreur : Comparer des flottants avec : False)
Correction : Utiliser abs(a - b) < epsilon avec epsilon très petit (ex : 1e-9)
Erreur : Oublier que le bit de poids fort en complément à deux indique le signe
Correction : Si le bit de poids fort vaut 1, le nombre est négatif en complément à deux
Erreur : Confondre octet et bit : dire qu'un octet = 1 bit
Correction : 1 octet = 8 bits. 1 ko = 1000 octets (SI) ou 1024 octets (binaire)
Astuce méthode
Pour convertir vite du décimal au binaire : divise par 2 successivement et lis les restes de bas en haut. Pour vérifier, utilise bin() et int() en Python.