Représentation des données : types et valeurs de base
L'essentiel en 30 secondes
Les notions à connaître
- Bit / Octet
- Un bit vaut 0 ou 1. Un octet = 8 bits, peut représenter 256 valeurs (0 à 255). On parle aussi de byte en anglais.
- Binaire (base 2)
- Système de numération utilisant uniquement 0 et 1. Chaque rang représente une puissance de 2. Le bit de poids fort est à gauche, le bit de poids faible à droite.
- Hexadécimal (base 16)
- Système utilisant 0-9 et A-F. Un chiffre hexa = 4 bits. Préfixe 0x en Python. Très utilisé pour les adresses mémoire et les couleurs.
- Complément à deux
- Méthode pour coder les entiers relatifs en binaire. Sur n bits : de -2^(n-1) à 2^(n-1)-1. Pour obtenir l'opposé : on inverse tous les bits puis on ajoute 1.
- Flottant (float)
- Représentation approchée d'un nombre réel selon la norme IEEE 754 : 1 bit de signe, 8 bits d'exposant, 23 bits de mantisse (simple précision). Les flottants ne sont PAS exacts.
- Booléen
- Type à deux valeurs : True ou False. Opérateurs : and, or, not. En Python, 0, None, [] et '' sont considérés comme False (falsy).
- Norme IEEE 754
- Standard international pour la représentation des nombres à virgule flottante. Simple précision (32 bits) et double précision (64 bits). Python utilise la double précision par défaut.
- Table ASCII / Unicode
- ASCII encode 128 caractères sur 7 bits (dont lettres, chiffres, symboles). Unicode étend ASCII pour couvrir tous les alphabets du monde. UTF-8 est l'encodage Unicode le plus courant (1 à 4 octets par caractère).
Les erreurs à éviter en nsi
Comparer des flottants avec == (ex False)
Utiliser abs(a - b) < epsilon avec epsilon très petit (ex : 1e-9) ou math.isclose(a, b)
Oublier que le bit de poids fort en complément à deux indique le signe
Si le bit de poids fort vaut 1, le nombre est négatif en complément à deux
Confondre octet et bit : dire qu'un octet = 1 bit
1 octet = 8 bits. 1 ko = 1000 octets (SI) ou 1024 octets (binaire, noté Kio)
Confondre les préfixes SI et binaires
octets (SI), Kio octets (binaire). Mio
Oublier que ord() et chr() existent pour manipuler les caractères
ord('a') = 97, chr(97) = 'a'. Très utile pour le chiffrement de César par exemple
Sais-tu répondre à ces questions ?
Les corrigés détaillés sont dans le quiz du chapitre.
- Quelle est la représentation binaire du nombre décimal 13 ?
- Quel est le type de la valeur True en Python ?
- Combien de caractères différents peut-on coder avec la table ASCII standard (7 bits) ?
- Quelle est la valeur décimale du nombre binaire 10110 ?
- Quel est le résultat de l'addition binaire 1011 + 0110 ?
Accède à la fiche complète
Crée ton compte gratuit pour lire la fiche en entier et accéder à 7 000+ contenus de révision.