Représentation et opérations sur les nombres
1) Représentation binaire d'un entier naturel: à savoir 1 : N'importe quel entier naturel peut etre codé en binaire. Il aura la représentation binaire suivante : Xn Xn-1 Xn-2...X1 X0 2 Le bit de rang 0, le plus à droite, s'appelle bit de poids faible et le bit de rang n, le plus à gauche, s'appelle bit de poids fort. à savoir 2 : Les entiers naturels sont codés en binaire pur : 33(10) = 100001(2). Exemple : Le nombre d'entiers naturels, contenu dans une mémoire, dépend du nombre de bits de la mémoire : * Si la mémoire a 8 bits, on pourra y inscrire des valeurs allant de 0 à 255 * Si la mémoire a 16 bits, on pourra y inscrire des valeurs allant de 0 à 65535 * Si la mémoire a 32 bits, on pourra y inscrire des valeurs allant de 0 à 4294967295 * D'une manière générale : Si la mémoire a n bits, on pourra y inscrire des valeurs allant de 0 à 2n-1
2) Représentation binaire d'un entier relatif: à savoir 3 : Les entiers relatifs sont codés en binaire signé : Le bit de poids fort sera le bit de signe (0 représentera un entier positif et 1 un entier négatif). Les autres bits représenteront le nombre en binaire pur sans signe. Exemple : 33 10 s'écrira 00100001 2 en binaire signé, dans une mémoire de 8 bits. alors que -33 10 s'écrira 10100001 2 en binaire signé, dans une mémoire de 8 bits. On remarque que : * Si la mémoire a 8 bits, on pourra y inscrire des valeurs allant de -127 à +127 * Si la mémoire a 16 bits, on pourra y inscrire des valeurs allant de -32767 à 32767 * Si la mémoire a 32 bits, on pourra y inscrire des valeurs allant de -2147483647 à 2147483647 * D'une manière générale : Si la mémoire a n bits, on pourra y inscrire des valeurs allant de - ( 2n-1 ) à 2n-1 Cette méthode de codage, des entiers relatifs, n'est pas très utilisée par les informaticiens, qui lui préfèrent la méthode dite du complément à 2. à savoir 4 : Méthode du complément à 2 : * Les entiers relatifs positifs sont codés en binaire signé. * Les entiers relatifs négatifs sont codés en complément à 2: - L'entier est codé en binaire sans son signe (sur 8 bits , 16 bits voire davantage) ; - On effectue le complément à 1 de ce nombre binaire ( le 0 devient 1 et le 1 devient 0) - On ajoute 1 à ce nombre complémenté pour obtenir le complément à 2. Exemple : -33 10 est négatif. Sa valeur binaire, sans signe, sur 8 bits est 00100001. Son complément à 1 sera 11011110. On ajoute 1 pour avoir le complément à 2 et on obtient 11011111. Exercice : Calculer le complément à 2 de - 128 (10) sur 8 bits et de - 357 (10) sur 16 bits. Remarque : la somme binaire de 0 + 1 ou de 1 + 0 vaut 1 mais la somme binaire de 1 + 1 vaut 10 (pas 2 qui est du décimal) 3) Opérations sur les nombres binaires: Addition de 2 nombres binaires : En tenant bien compte de la remarque en rouge ci dessus, on effectue facilement une somme de 2 nombres binaires : Exemple : 33 10 + 66 10 doit donner 99 10 33 10 s'écrira 00100001 2 en binaire signé, dans une mémoire de 8 bits. 66 10 s'écrira 01000010 2 en binaire signé, dans une mémoire de 8 bits. posons l'addition binaire: 00100001 + 01000010 ___________ = 01100011 Et effectivement après conversion, grâce au tableau, 01100011 2 vaut bien 99 10 en binaire signé, dans une mémoire de 8 bits. Soustraction de 2 nombres binaires : La soustraction de 2 nombres binaire n'est autre que l'addition d'un nombre binaire positif avec un nombre binaire en complément à 2 : Exemple : 66 10 - 33 10 doit donner 33 10 66 10 s'écrira 01000010 2 en binaire signé, dans une mémoire de 8 bits. -33 10 s'écrira 11011111 2 en complémént à 2, dans une mémoire de 8 bits. posons la soustraction binaire (addition avec le terme négatif en complément à 2): 1 1111---> sont les retenues comme dans une addition classique. 01000010 + 11011111 ___________ = 100100001 Le dernier 1 , le plus à gauche, sort du format de 8 bits choisi initialement, il ne sera donc pas utilsé pour connaitre le résultat de l'opération. Et effectivement après conversion, grâce au tableau, 00100001 2 vaut bien 33 10 en binaire signé, dans une mémoire de 8 bits. Exercices : Effectuer les opérations suivantes en binaire en les posant : 45 + 120 ;   37 - 26 ; 154 - 213 4) Nombres entiers en python: Lorsque dans thonny on tape >>> int (5), on obtient 5 ; si on tape >>> int (-5) ça donne -5 ce sont 2 entiers. >>> int (-5/2) donne -2 et >>> int (5/4) donne 1 : on a la partie entière de la valeur proposée. Pour connaitre le type d'une variable : >>> a=-3 ; >>> type(a) donnera (class 'int') la variable a est un entier... alors que >>> b=3/2 >>> type(b) donnera (class 'float')...la variable b n'est pas un entier, c'est un flottant c'est à dire un décimal.