Wallon
licence

Numérique et Sciences Informatiques


TP
TP


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.




loi


TP
TP