# Complément à 2 1. Représenter -68<sub>10</sub> en binaire: 10111100 2. Effectuer l’addition de -710 et 710. Que constatez-vous ? Et si l’on exclut le bit de signe ? : -7<sub>10</sub> + 7<sub>10</sub>=10000 3. Prenons l'exemple du nombre 5 : 1. La représentation binaire de 5 est 0101. 2. L'inversion de tous les bits donne 1010. 3. On ajoute 1, ce qui donne 1011. Ainsi, le complément à deux de 5 est 1011 en binaire, ce qui équivaut à -5 en décimal. Maintenant, pour vérifier cela avec -5 : 1. La représentation binaire de -5 est 1011. 2. L'inversion de tous les bits donne 0100. 3. On ajoute 1, ce qui donne 0101. Le complément à deux de -5 est 0101 en binaire, ce qui équivaut à 5 en décimal. # Représentation approximative d’un flottant #### 1. Décomposition de 21,3786<sub>10</sub> : 21,378610 s'écrit en base 10 comme suit : - Partie entière : 21 - Partie fractionnaire : 0,3786<sub>10</sub> **2. Décomposition de 10,011<sub>12</sub> :** 10,011<sub>12</sub> s'écrit en base 10 comme suit : - Partie entière : 10 - Partie fractionnaire : 0,011<sub>12</sub> **3.** **Conversion de 1/3<sub>10</sub> en binaire en n'utilisant que des fractions :** Pour convertir 1/310 en binaire, nous allons utiliser la méthode de multiplication par 2 successives. 1/310 x 2 = 2/310 = 1/155 0,01 (partie entière) 1/155 x 2 = 2/155 = 1/77,5 0,010 (partie entière) 1/77,5 x 2 = 2/77,5 = 1/38,75 0,0100 (partie entière) 1/38,75 x 2 = 2/38,75 = 1/19,375 0,01000 (partie entière) 1/19,375 x 2 = 2/19,375 = 1/9,6875 0,010000 (partie entière) 1/9,6875 x 2 = 2/9,6875 = 1/4,84375 0,0100000 (partie entière) 1/4,84375 x 2 = 2/4,84375 = 1/2,421875 0,01000000 (partie entière) 1/2,421875 x 2 = 2/2,421875 = 1/1,2109375 0,010000000 (partie entière) 1/1,2109375 x 2 = 2/1,2109375 = 1/0,60546875 0,0100000001 (partie entière et le reste est répétitif) Donc, la conversion de 1/310 en binaire est 0,0100000001... en binaire. **4.** **Conversion de 0,1<sub>10</sub> en binaire :** En utilisant la méthode de conversion d'un décimal flottant en binaire, on a : 0,1<sub>10</sub>s'écrit en binaire comme 0,000110011001100... On observe que la partie fractionnaire est périodique. **5.** **Écriture de 0,1<sub>10</sub> en machine :** Comme indiqué dans la réponse précédente, la partie fractionnaire de 0,1<sub>10</sub> est périodique. Cela signifie qu'il n'est pas possible de représenter exactement ce nombre en utilisant un nombre fini de bits dans la mémoire d'une machine. Il serait stocké sous une forme approximative en binaire. **1.** **Nombre de lignes d'un fichier tableur :** Ancienne version d'un tableur : 65535 lignes. Pour représenter 65535, on a besoin de 16 bits (car 2^16 = 65536, donc 16 bits peuvent représenter les valeurs de 0 à 65535). En ce qui concerne les octets, 16 bits correspondent à 2 octets (car 1 octet = 8 bits). Donc, pour stocker le numéro de ligne dans l'ancienne version du tableur, il fallait 16 bits ou 2 octets. **2.** **Adresse IPv6 :** Une adresse IPv6 est composée de 8 champs de 4 valeurs hexadécimales, soit un total de 32 caractères hexadécimaux (8 champs x 4 caractères/champ). Chaque caractère hexadécimal est représenté par 4 bits (puisque 16 valeurs possibles en hexadécimal peuvent être représentées par 4 bits). Ainsi, le nombre total de bits nécessaires pour écrire une adresse IPv6 en binaire est de 32 caractères x 4 bits/caractère = 128 bits. 1. **Produit de deux entiers positifs sur n bits :** Avant d'effectuer le produit de deux entiers positifs représentés sur n bits, il faut s'assurer que le résultat du produit ne dépasse pas la capacité de représentation des n bits. Cela signifie que le produit doit être inférieur à \(2^n\). Sinon, il y aura un débordement. 2. **Nombre de bits pour stocker la somme binaire de deux entiers positifs sur 1 octet :** Si l'on considère un octet (8 bits) pour stocker la somme binaire de deux entiers positifs, cela signifie que la somme doit être inférieure à \(2^8\) (car un octet peut représenter des valeurs de 0 à 255 en binaire). Donc, les entiers doivent être tels que leur somme soit inférieure à 256. 3. **Somme binaire de 01001101₂ et 11000110₂ :** ``` 01001101 + 11000110 ---------- 000101111 (en binaire) 2D (en hexadécimal) 45 (en décimal) ``` La somme binaire de 01001101₂ et 11000110₂ est 000101111₂, ce qui correspond à 2D en hexadécimal et 45 en décimal. 4. **Complément à 24 de -3<sub>10</sub> et -1<sub>10</sub> :** Pour trouver le complément à 24, on convertit d'abord les nombres en binaire sur 24 bits. - Pour -3<sub>10</sub> : - En binaire, 3<sub>10</sub> s'écrit 0011 et pour -3 est l'inverse donc 1101 - Pour -1<sub>10</sub> : - En binaire, 1<sub>10</sub> s'écrit 0001 pour -10 qui est l'inverse c'est 1111 5. **Somme binaire de -4<sub>10</sub> et -2<sub>10</sub> sur 4 bits :** ``` 11010 (en binaire, -4 en complément à 2 sur 5 bits) + 11110 (en binaire, -2 en complément à 2 sur 5 bits) -------- 110000 (en binaire) -16 (en décimal, en complément à 2 sur 5 bits) ``` Le résultat en binaire est 110000, ce qui correspond à -16 en décimal en complément à 2 sur 5 bits. 6. **Conversion de 3,375 en base binaire :** Pour convertir 3,375 en binaire, on peut utiliser la méthode de multiplication par 2 successive : ``` Partie entière : 3 (en binaire : 11) Partie fractionnaire : 0,375 0,375 x 2 = 0,75 (Partie entière : 0) 0,75 x 2 = 1,5 (Partie entière : 1) 0,5 x 2 = 1 (Partie entière : 1) Le reste de la division de la partie fractionnaire devient périodique : 0,1(1). Donc, on obtient : Partie fractionnaire : 0,011 ``` Ainsi, 3,375 en base 10 est équivalent à 11,011 en base binaire. 7. **Représentation de 5,15 V dans la mémoire de l'ordinateur :** En général, les ordinateurs utilisent des nombres à virgule flottante pour représenter des valeurs comme 5,15. Cependant, il faut noter que la représentation des nombres à virgule flottante en informatique peut entraîner des arrondis et des approximations. Donc, bien que 5,15 puisse être stocké dans la mémoire d'un ordinateur, il est probable que la représentation exacte ne soit pas possible, et la valeur stockée sera une approximation de 5,15. On a un motif qui se repète donc c'est infini