# Encodage des entiers réels, et des caractères
**INTRODUCTION**
La numération positionnelle est une manière de représenter les nombres où chaque chiffre possède une valeur qui dépend de sa position.
Exemple : 111
La numération addictive correspond à l'addition de différents valeurs numérique pour former un nombre.
Exemple : XXI
formule de decomposition
Exemple: 111 = 1 * 10² + 1 * 10¹ + 1 * 10⁰
Une base est un entier positif supérieur ou égal à 2 qui permet de décomposer un nombre entier dans une numération positionnnelle
Convention d'écriture :
10 en base 10 → 10₁₀
2 en base 2 → 10₂
Exemple de systèmes de numpérotation utilisés au quotidien :
- La base 60 pour la réprésentation des minutes et des heures.
3) Qu'est-ce qu'un bit ?
- binary digit
- quantité élémentaitre d'information que l'on peut représenter en machine
- ne peut prendre que 2 valeurs : 0 ou 1
4) Qu'est-ce qu'un octet ?
- paquet de 8 bits
- sert d'unité de mesure de la quantité d'information
# I. La représentation des nombres dans le système décimal
En base 1, on utilise les chiffres de 0 à 9 pour représenter les nombres.
# II. Ecriture d'un entier positif en base 2
- Utilisation des chiffres 0 et 1
En représentation machine les données sont stockées en base 2 . Sur Pyhton, un nombre en binaire précédé par OB séra compris par la machine comme un nombre en binaire.
**Conversion binaire vers décimal**
Pour effecter la convertion décimal vers binaire, on effectue des divisions euclidiennes par 2.

# III. Représentation des entiers en héxadécimal

2 à la puissance représente le nombre maximal de nombres que l'on peut représenter sur cet espace.
Pour transformer un nombre en son complément à 2 sans calcul, il suffit de garder tous les bits depuis la droite jusqu'au premier 1 compris, puis d'inverser tous ceux qui sont à droite
en informatique, les nombres non entiers sont souvent représentées en nombres à virgules flottantss, encore appelées n,ombre flottants
### Représentation approximative des nombres réels
Compte tenu du nombre limités des bits en mémoires, touts les nomnbre réels ne sont pas exactement représentables en binaire. Ainsi, certains nombres réels ont une représentation binaire infinie.
exemple: 0,1<sub>10</sub>
0,00011 0011...
Méthode pour convertir la partie decimale d'un nombre flottant de la base decimale a la base binaire:
- Multiplier par 2 la partie decimale; la partie entiere du nombre obtenue donne le prochain chiffres après la virgule; ne gardez que la partie decimale du nombre obtnenue et recommencer les calculs avec cette nouvelle valeur tant que celle-ci n'est pas nulle.
exemple:
5,125<sub>10</sub> 5,125= 101,001 0,125x2=0,250x2=0,5x2=1
### Test d'égalité sur les nombres flottants
Regle 1 : Il faut eviter de tester l'égalité sur 2 nombres flottants (étant donné que la représentation binaire est approximative)
exemple : print(0.1+0.2==0.3)
### Représentation d'un texte en machine
Afin de représenter tout type de caractère (lettre, symbole ou chiffre), il est indispensable d'utiliser un système de codage informatique, appelé encodage. L'encodage assure la correspondance entre les caracttères et les nombres binaires stockés dans la mémoire de l'ordinateur. De nombreux codages coexistent :
- le codage ASCII. Il est simple mais limité en matière de caractères à encoder, ce qui ne le rend pas universel. 7 bits sufisent pour coder un caractère.
- La norme ISO 8859-1 (ou Latin-1). Cela permet d'encoder tous les caractères des principales langues européennes. Chauqe caractère est codé sur 1 octet. Certains alphabets comme le cyrillique ou le polonais ont leur propre norme.
- Le standard unicode. Il est universel et extensible si besoin. En revanche, il nécéssite l'utilisation de 4 à 6 octets par caractère à encoder, ce qui allonge la taille du message.
- La norme UTF-8. C'est une représentation d'unicode dont elle possède les avantages. Cet encodage est de taille variable, ce qui lui permet d'être moins gourmand en espace mémoire que l'unicode.
### Le calcul booléen
**Variable booléenne** : une variable booléenne est une variable qui ne peut prendre que 2 valeurs (true/false...)
**Opérateur booléen** : un opér ateur booléen est un opérateur mathématique qui relie deux variables binaires ou deux expressions binaires.
**Expression booléenne** : expression dont l'expression ne peut être que vrai ou faux
Opérande : élément sur lequel s'appuie un opérateur booléen
**Table de vérité d'une expression boolénne** : tableau qui comporte une colonne par variable d'entrée (ou opérande) et puisque les variables booléennes ne peuvent prendre que deux variables, on peut dresser la liste de tous cas possibles pour chaqun des opérateur
**Calcul booléen** : a été introduit par le britannique George Boole en 1854. L'algèbre de Bool ou calcul booléen est une branche des mathématiques qui s'interresse à une approche algébrique de la logique à l'aide d'opérandes, d'opérateurs et d'expressions booléennes.
1) L'opérateur and :
{ *
{ &
{ V
→ et logique
2) L'opérateur or :
{ +
{ || ou |
{ Ʌ
→ ou logique
3) L'opérateur not :
{ non
{ -
{ ~
4) L'opérateur xor (ou exclusif)
{ ⊕

En python, on peut avoir un traitement séquentiel des expressions booléennes. Exemple : 1 or b = True et 1 xor b = False