ENT arithmétique 1

Texte de la première page
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
La base décimale
Quand on représente un nombre entier, positif,
on utilise généralement la base 10.
Cela signifie que, de la droite vers la gauche,
chaque nombre indiqué ‘compte’ 10 fois plus
que le précédent, sachant que l’on utilise 10
chiffres allant de 0 à 9
Exemple
BASES
La base binaire
Quand on représente un nombre en
informatique on utilise généralement la base 2.
Cela signifie que, de la droite vers la gauche,
chaque nombre indiqué ‘compte’ 2 fois plus
que le précédent, sachant que l’on utilise 2
chiffres allant de 0 à 1
Exemple
Le nombre noté 172 vaut
2+10x7+100x1
Le nombre noté 1001101 vaut
1+2x1+4x1+8x1+16x0+32x0+64x1
Par la suite, un nombre en base 10 sera noté
(172)10 si une ambiguïté est possible
Par la suite, un nombre en base 2 sera noté
(1001101)2 si une ambiguïté est possible
Formalisation mathématique :
Si a0,a1, a2, …, an sont n+1 chiffres de 0 à 9, le
nombre noté (anan-1an-2…a2a1a0)10 ‘vaut’
a0+a1x10+a2x100+…+an-1x10n-1+anx10n
Il ne faudra pas confondre (101)2 et (101)10
Formalisation mathématique :
Si a0,a1, a2, …, an sont n+1 chiffres de 0 à 1, le
nombre noté (anan-1an-2…a2a1a0)10 ‘vaut’
a0+a1x2+a2x4+…+an-1x2n-1+anx2n
1
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion binaire décimal
Conversion de binaire en décimal
Pour convertir rapidement un binaire en décimal, il est primordial de
connaître PAR CŒUR les premières puissances de 2, dans l’ordre et le
désordre
Il suffit ensuite de lire le nombre de la DROITE vers la GAUCHE en
multipliant le chiffre (bit) donné par la puissance correspondant à sa
position et en additionnant les résultats intermédiaires
Exemple : si a=(10100110)2
20
1
21
2
22
4
23
8
24
16
25
32
26
64
1
0
1
0
0
1
1
0
27
128
27=128
26=64
25=32
24=16
23=8
22=4
21=2
20=1
28
256
29
512
210
1024
1x128=
128
0x64=0
1x32=32
0x16=0
0x8=0
1x4=4
1x2=2
0x1=0
Le nombre cherché est donc (128+32+4+2)10=(166)10
Avec un peu d’expérience (donc de travail), on peut convertir de tête
facilement tout nombre écrit en binaire pas trop long.
On s’entraînera à reconnaitre rapidement les nombres suivants :
0
1
2
3
4
5
6
7
0000
0001
0010
0011
0100
0101
0110
0111
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
2
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion d’entier décimal en binaire
Conversion décimal-binaire
Pour cette conversion, la méthode appliquée
utilisera la division entière par 2, c’est-à-dire
avec reste.
On remarquera qu’il suffit de diviser par 2,
sans le reste et de constater si le résultat
est pair ou impair. Et on écrit les restes (1
ou 0) de la DROITE vers la GAUCHE.
Exemple
On veut convertir (79)10 en binaire, on fait des
divisions successives
En 79 il y a 39 fois 2, il reste 1 : 79=39x2+1
En 39 il y a 19 fois 2, il reste 1 : 38=19x2+1
En 19 il y a 9 fois 2, il reste 1 : 18=9x2+1
En 9 il y a 4 fois 2, il reste 1 : 9=4x2+1
En 4 il y a 2 fois 2, il reste 0 : 4=2x2+0
En 2 il y a 1 fois 2, il reste 0 : 2=2x1+0
En 1 il y a 0 fois 2, il reste 1 : 1=2x0+1
On s’arrête une fois le 0 atteint et le nombre
binaire cherché se lit en prenant les restes dans
l’ordre de calcul.
(79)10 = (1001111)2
Preuve
En effet, on a calculé, en remontant les calculs :
79=39x2+1=(19x2+1)x2+1=((9x2+1)x2+1)x2+1=
…
=((((((2x0+1)x2+0)x2+0)x2+1)x2+1)x2+1)x2+1
=1x26+0x25+0x24+1x23+1x22+1x21+1x20
=(1001111)2
En pratique
Suivant les exercices ou le cadre du travail, on
rajoutera des 0 devant le nombre pour avoir
un entier sur 8 bits, 12 bits etc…
(79)10=(01001111)2
Exercices
1) Convertir les nombres binaires suivants en décimal :
10101 ; 110111; 10010111; 0010010111
2) En observant les valeurs décimales successives des
nombres 1;11;111;1111;11111… devinez la valeur
de (1111…11111)2 (20 chiffres)
3) Convertir les nombres entiers suivants en binaire :
26;27;99;101;1001;513
4) On dispose de 8 bits pour coder un nombre. Quel est
le plus petit entier positif et le plus grand entier
positif que l'on puisse représenter ?
En général les machines (les ordinateurs) disposent
de mémoires sur 16 bits et les plus récentes sur 32
bits. Dans ces deux cas, quel est le plus grand
entier positif représentable ? Quelle conclusion en
tirez-vous ?
3
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Addition des binaires
Méthode d’addition
Exercices
Pour additionner 2 nombres binaires, on les
positionne l’un au dessus de l’autre comme des
décimaux (aligné à DROITE) et on fait comme
pour une addition classique, sachant que
1+1=0 avec une retenue égale à 1
Et 1+1+1=1 avec une retenue égale à 1
Exemple
Pour calculer 100110 + 1111101
retenue
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
Nombre 1
Nombre 2
Résultat
1
1) Effectuer et vérifier les résultats des
additions binaires suivantes :
(10111)2+(11101)2
(10010111)2+(1101011111)2
(111111)2+(1)2
(111111)2+(11)2
(111111)2+(111)2
2) Effectuer les additions suivantes après avoir
converti les nombres en binaire
(5)10+(15)10
(17)10+(23)10
(127)10+(1)10
On peut vérifier :
100110=2+4+32=38
1111101=1+4+8+16+32+64=125
10100011=1+2+32+128=163=125+38
4
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Multiplication en binaire
Méthode de multiplication
Exercices
La méthode de multiplication utilisée avec les
entiers s’applique aussi en binaire, encore plus
simplement puisque la seule table à retenir
est: 0x0=0, 0x1=1, 1x0=0 et 1x1=1
Exemple
Multiplions (101)2 par (1101)2 :
Retenues
1
1
nombre 1 (n1)
nombre 2 (n2)
1
1er chiffre de n2
1
0
1
1
0
1
1
0
1
2ème chiffre de n2
0
0
0
Addition
0
1
0
1
3ème chiffre de n2
1
0
1
Addition
1
1
0
0
1
1
0
1
0
0
0
0
0
1
4ème chiffre de n2
Addition
1
1) Effectuer et vérifier les résultats des
multiplications binaires suivantes :
(10111)2x(11)2
(10010111)2x(1101)2
(111111)2x(10)2
(111111)2x(100)2
(111111)2x(1000)2
2) Effectuer les multiplication suivantes après
avoir converti les nombres en binaire
(2)10x(16)10
(17)10x(23)10
(122)10x(7)10
La vérification se fait en convertissant :
(101)2 = 1+4=5, (1101)2=1+4+8=13
5x13=65
(1000001)2=1+64=65
5
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Le complément à 2
Dans la suite nous considèrerons des nombres
entiers représentés en base 2 sur 8 bits, soit 8
‘chiffres’ 0 ou 1
On peut représenter ainsi 28=256 nombres
positifs différents, allant de 0 à 255
Mais on peut également définir une convention
qui permettra par exemple de représenter les
nombres allant de -128 à +127, c’est le
complément à 2, inventé pour que l’addition
continue à fonctionner sur ces représentations
La première condition sur cette représentation
est que le bit de poids fort (le plus à gauche)
vaut 0 si le nombre est positif, 1 s’il est négatif
Méthode de détermination
Pour représenter le complément à 2 d’un
nombre positif, et obtenir ainsi son négatif on
effectue les opérations suivantes :
On inverse tous les chiffres (1 en 0, 0 en 1)
On rajoute 1 au résultat
On passe le bit de poids fort à 1
Représentation des négatifs
Exemple
Soit 125=(01111101)2,
on veut trouver l’écriture de -125 en
complément à 2
1) On inverse :
(01111101)2 donne (10000010)2
2) On rajoute 1=(00000001)2
10000010
+00000001
=10000011
Le nombre -125 se représente donc
(10000011)2 en complément à 2
D’ailleurs :
01111101
+ 10000011
=100000000
=00000000 sur 8 bits (125+(-125)=0)
Attention, on reste bien sur 8 bits, ainsi le
complément à 2 de 0=(00000000)2 donne
Inverse:11111111
+1=100000000 sur 9 bits, mais on ne
considère pas le 9ème bit, donc le résultat est
bien 00000000=0, soit 0=-0
6
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
La base 16 en informatique
Base 16:Hexadécimal
Conversions binaire-héxadécimal
En informatique, la représentation binaire est
celle utilisée par les ordinateurs, mais elle est
peu lisible par les humains qui lui préfère la
notation hexadécimale, plus facile à convertir
en binaire que la décimale
Elle utilise 16 ‘chiffres’ : 0,1,2,…,9,A,B,C,D,E,F
Ainsi (A)16=(10)10=(1010)2
(F)16=(15)10=(1111)2
Les chiffres hexadécimaux représentent donc
tous les binaires sur 4 bits :
0
0000
8
1000
1
0001
9
1001
2
0010
A
1010
3
0011
B
1011
4
0100
C
1100
5
0101
D
1101
6
0110
E
1110
7
0111
F
1111
Cette conversion se fait simplement en
découpant le nombre binaire à convertir en
paquet de 4, en commençant par la DROITE et
en rajoutant éventuellement des 0, puis en
utilisant le tableau de gauche.
(0101111011)2=(0001 0111 1011)2=(17B)16
De même dans l’autre sens, le nombre (ABC)16
devient (1010 1011 1100)2
7
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Exercices
6) Convertissez en décimal les nombres
binaires codés en complément à 2 sur 8 bits:
(10010111)c2; (00010111)c2; (11010100)c2;
(11110111)c2;
7) Codez sur 16 bits en complément à 2 le
nombre - 693
Exercices sur le complément à 2
1) Quelle sont les valeurs entières des binaire
représentés par (11010111)c2,(11111110)c2
; (10000010)c2 en complément à deux.
2) Codez sur 8 bits les entiers -75, -12 et
-213 en appliquant la règle et en vérifiant
que la séquence obtenue est correcte.
3) Faire l'addition de -3 et de +10 après avoir
représenté ces nombres en complément à 2
sur 8 bits. Vérifiez que le résultat est
correct.
4) On dispose de 8 bits pour coder un nombre.
Quel est le plus petit entier négatif et le
plus grand entier positif que l'on puisse
représenter ?
En général, les machines (les ordinateurs)
disposent de mémoires sur 16 bits et les
plus récentes sur 32 bits. Dans ces deux
cas, quel est le plus petit entier négatif ?
5) Soient deux nombres a=+95, b=+76,
Codez a et b sur 8 bits en complément à 2.
Calculez à partir du codage a+b.
Codez ensuite –b et calculez a+(-b).
Que constatez vous ? Quelle conclusion en
tirez vous ?
Exercices sur l’hexadécimal
1) Convertir les nombres binaires suivants en
hexadécimal :
(10011110)2, (101100111)2 , (111111)2 ,
(1111111)2 , (101010101)2 , (1101101101)2
2) Convertir les nombres hexadécimaux
suivants en binaire puis en décimal :
(AA)16, (BAC)16, (2A)16, (A2)16, (123)16
3) Dans un logiciel comme Photoshop, les
couleurs sont codées par 6 nombres
hexadécimaux représentant les valeurs de
Rouge, Vert, Bleu (RVB). Ainsi (FFFFFF)16
représente le blanc et (000000)16 le noir.
Combien de couleurs différentes peut-on
représenter dans ce mode ?
Combien de bits utilise ce codage ?
8
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Les nombres décimaux
Nombres décimaux en base 10
Pour représenter les nombres décimaux, la
notation 'a virgule' utilise les puissances
négatives de 10. Ainsi 0,517 représente
5 dixièmes + 1 centième + 7 millièmes, soit
5
Méthode de détermination de l'écriture
binaire
Pour déterminer en binaire l'écriture d'un
décimal, on utilise cette méthode
multiplier la partie décimale par 2
si la partie entière est supérieur à 0, on rajoute
1 à l'écriture binaire
sinon on rajoute 0
On recommence tant qu'il y a des chiffres
derrière la virgule
Ou que l'on n'a pas atteint le nombre de chiffres
binaires souhaités
1
1
1
1
1
1
1
7
5 1 1 2 7 3
10
10
10
1000
100
10
Nombres décimaux en binaire
De la même manière, en binaire
0,101 représente
1
Exemple
1
1
1 1 1
0
1
0,625
21
22
24 2 8
partie décimale
On a :
2-1
2-2
2-3
2-4
2-5
2-6
0,5
0,25
0,125
0,0625
0,03125
0,015625
Rappel :
1
n
2
2n
fois 2
N en base 2
0,3515625
0,703125<1
0,0
0,703125
1,40625 ≥ 1
0,01
0,40625
0,8125<1
0,010
0,8125
1,625 ≥ 1
0,0101
0,625
1,25 ≥ 1
0,01011
0,25
0,5<1
0,010110
0,5
1≥1
0,0101101
0
STOP
0,01011010
Ainsi, (0,3515625)10=(0,01011010)2
9
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Avec une partie entière
Conséquences
Avec cette méthode, le nombre
(101,01011010)10 représente donc
(5,3515625)2
Problèmes de la notation binaire
Avec cette notation, certains nombres
décimaux ont une écriture binaire infinie
Exemple : N=(0,2)10
partie décimale
aspects pratiques
fois 2
N en base 2
0,2
0,4<1
0,0
0,4
0,8<1
0,00
0,8
1,6≥1
0,001
0,6
1,2≥1
0,0011
0,2
0,4<1
0,00110
0,4
0,8<1
0,001100
0,8
1,6≥1
0,0011001
0,6
1,2≥1
0,00110011
0,2
0,4<1
0,001100110
0,4
0,8<1
0,0011001100
0,8
1,6≥1
0,00110011001
Soit (0,2)10=(0,00110011001100110011…)2
Pour un ordinateur, le nombre 0,2 n'a pas de
représentation finie, il est obligé de l'arrondir.
Si on le considère avec 16 'bits' après la
virgule, il vaut en fait
(0,0011 0011 0011 0011)2
qui est égal à
1 1 1 1
1
1
1
1
23 2 4 27 28 211 212 215 216
0,1999969482 0,2
Si on fait sur tableur les valeurs de la suite
u0=0,2, un+1=6un-1, on obtient :
au lieu d'obtenir une
valeur constante
égale à 0,2
10
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion du binaire vers le décimal
Pour convertir un nombre décimal binaire en
décimal de base 10, il suffira de traiter sa
partie décimale, puis de la diviser par 2n où n
est le nombre de bits derrières la virgule.
Exemple
(0,100111)2 vaut, en base 10 :
(100111)2=1+2+4+32=39
Il y a 6 chiffres derrière la virgule
26=64
Donc
0,1001112 396
39
0,609375
2 10 64 10
S'il y a une partie entière (devant la virgule),
on la convertit à part
Exemple
(101,100111)2=(5,609375)10
Les nombres décimaux
Exercices
1) Codez sur 8 bits les nombres décimaux
suivants :
0,12345 ; 0,328125 ; 0,99999; 0,53515625
2) Parmi les nombres précédents lesquels ont
un développement décimal fini ?
Donnez la valeur approchée décimale des
autres.
3) Convertissez en base 10 les décimaux
binaires suivants
(0,11010111)2; (0,00010001)2
(0,01010101)2; (0,10101010)2
4) Codez sur 8 bits les nombres décimaux
0,10039 et 0,1004 ; Que constatez-vous ?
Quelle précision maximale peut-on obtenir sur
un binaire décimal avec 8 bits derrière la
virgule ? Quelle précision aurait-on sur 32 bits
? sur 64 bits ?
5) Si on pouvait mémoriser les nombres
suivants sur une infinité de bits, quelle serait
sa valeur en base 10 :
(0,10101010101….)2 ?
(0,110011001100…)2 ?
(0,11010110101101011010…)2 ?
6) Convertissez 1/3 en binaire
11
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
En binaire, il existe d'autres opérateurs que
l'addition, la soustraction ou la multiplication
Autres opérateurs
Le ET (AND), noté &&
Le ET utilise les règles suivantes :
1 && 0 = 0 && 1 = 0 && 0 = 0
1 && 1 = 1 (2 '1' obligatoires)
Ainsi
1001 0111
&&
1101 0001
=
1001 0001
Division par deux
Nous avons vu que le décalage vers la
GAUCHE équivaut à une division entière par 2
(1101 0100)2 = (212)10
(.110 1010)2 = (106)10=212/2
(. .11 0101)2 = (53)10=106/2
(. . .1 1010)2 = (26)10=53/2
Multiplication par deux
Le ET est fortement utilisé dans la création de
masques pour les réseaux
De même le décalage vers la DROITE équivaut
à une multiplication par 2
(0001 0011)2=(19)10
(0010 0110)2=(38)10
(0100 1100)2=(76)10…
Le OU (OR), noté ||
Le OU utilise les règles suivantes
1 || 0 = 0 || 1 = 1 || 1 = 1
0 || 0 = 0 (au moins un 1)
Ainsi
1001 0111
||
1101 0001
=
1101 0111
Le OU exclusif (XOR) ou
Le utilise les règles suivantes :
10=01=1
1 1 = 0 0 = 0 (un et un seul 1)
Ainsi
1001 0111
1101 0001
=
0100 0110
Le peut servir à inverser les bits
1001 1100 1111 1111=0110 0011
12
Chapitre I - arithmétique
La base décimale
Quand on représente un nombre entier, positif,
on utilise généralement la base 10.
Cela signifie que, de la droite vers la gauche,
chaque nombre indiqué ‘compte’ 10 fois plus
que le précédent, sachant que l’on utilise 10
chiffres allant de 0 à 9
Exemple
BASES
La base binaire
Quand on représente un nombre en
informatique on utilise généralement la base 2.
Cela signifie que, de la droite vers la gauche,
chaque nombre indiqué ‘compte’ 2 fois plus
que le précédent, sachant que l’on utilise 2
chiffres allant de 0 à 1
Exemple
Le nombre noté 172 vaut
2+10x7+100x1
Le nombre noté 1001101 vaut
1+2x1+4x1+8x1+16x0+32x0+64x1
Par la suite, un nombre en base 10 sera noté
(172)10 si une ambiguïté est possible
Par la suite, un nombre en base 2 sera noté
(1001101)2 si une ambiguïté est possible
Formalisation mathématique :
Si a0,a1, a2, …, an sont n+1 chiffres de 0 à 9, le
nombre noté (anan-1an-2…a2a1a0)10 ‘vaut’
a0+a1x10+a2x100+…+an-1x10n-1+anx10n
Il ne faudra pas confondre (101)2 et (101)10
Formalisation mathématique :
Si a0,a1, a2, …, an sont n+1 chiffres de 0 à 1, le
nombre noté (anan-1an-2…a2a1a0)10 ‘vaut’
a0+a1x2+a2x4+…+an-1x2n-1+anx2n
1
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion binaire décimal
Conversion de binaire en décimal
Pour convertir rapidement un binaire en décimal, il est primordial de
connaître PAR CŒUR les premières puissances de 2, dans l’ordre et le
désordre
Il suffit ensuite de lire le nombre de la DROITE vers la GAUCHE en
multipliant le chiffre (bit) donné par la puissance correspondant à sa
position et en additionnant les résultats intermédiaires
Exemple : si a=(10100110)2
20
1
21
2
22
4
23
8
24
16
25
32
26
64
1
0
1
0
0
1
1
0
27
128
27=128
26=64
25=32
24=16
23=8
22=4
21=2
20=1
28
256
29
512
210
1024
1x128=
128
0x64=0
1x32=32
0x16=0
0x8=0
1x4=4
1x2=2
0x1=0
Le nombre cherché est donc (128+32+4+2)10=(166)10
Avec un peu d’expérience (donc de travail), on peut convertir de tête
facilement tout nombre écrit en binaire pas trop long.
On s’entraînera à reconnaitre rapidement les nombres suivants :
0
1
2
3
4
5
6
7
0000
0001
0010
0011
0100
0101
0110
0111
8
9
10
11
12
13
14
15
1000
1001
1010
1011
1100
1101
1110
1111
2
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion d’entier décimal en binaire
Conversion décimal-binaire
Pour cette conversion, la méthode appliquée
utilisera la division entière par 2, c’est-à-dire
avec reste.
On remarquera qu’il suffit de diviser par 2,
sans le reste et de constater si le résultat
est pair ou impair. Et on écrit les restes (1
ou 0) de la DROITE vers la GAUCHE.
Exemple
On veut convertir (79)10 en binaire, on fait des
divisions successives
En 79 il y a 39 fois 2, il reste 1 : 79=39x2+1
En 39 il y a 19 fois 2, il reste 1 : 38=19x2+1
En 19 il y a 9 fois 2, il reste 1 : 18=9x2+1
En 9 il y a 4 fois 2, il reste 1 : 9=4x2+1
En 4 il y a 2 fois 2, il reste 0 : 4=2x2+0
En 2 il y a 1 fois 2, il reste 0 : 2=2x1+0
En 1 il y a 0 fois 2, il reste 1 : 1=2x0+1
On s’arrête une fois le 0 atteint et le nombre
binaire cherché se lit en prenant les restes dans
l’ordre de calcul.
(79)10 = (1001111)2
Preuve
En effet, on a calculé, en remontant les calculs :
79=39x2+1=(19x2+1)x2+1=((9x2+1)x2+1)x2+1=
…
=((((((2x0+1)x2+0)x2+0)x2+1)x2+1)x2+1)x2+1
=1x26+0x25+0x24+1x23+1x22+1x21+1x20
=(1001111)2
En pratique
Suivant les exercices ou le cadre du travail, on
rajoutera des 0 devant le nombre pour avoir
un entier sur 8 bits, 12 bits etc…
(79)10=(01001111)2
Exercices
1) Convertir les nombres binaires suivants en décimal :
10101 ; 110111; 10010111; 0010010111
2) En observant les valeurs décimales successives des
nombres 1;11;111;1111;11111… devinez la valeur
de (1111…11111)2 (20 chiffres)
3) Convertir les nombres entiers suivants en binaire :
26;27;99;101;1001;513
4) On dispose de 8 bits pour coder un nombre. Quel est
le plus petit entier positif et le plus grand entier
positif que l'on puisse représenter ?
En général les machines (les ordinateurs) disposent
de mémoires sur 16 bits et les plus récentes sur 32
bits. Dans ces deux cas, quel est le plus grand
entier positif représentable ? Quelle conclusion en
tirez-vous ?
3
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Addition des binaires
Méthode d’addition
Exercices
Pour additionner 2 nombres binaires, on les
positionne l’un au dessus de l’autre comme des
décimaux (aligné à DROITE) et on fait comme
pour une addition classique, sachant que
1+1=0 avec une retenue égale à 1
Et 1+1+1=1 avec une retenue égale à 1
Exemple
Pour calculer 100110 + 1111101
retenue
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
Nombre 1
Nombre 2
Résultat
1
1) Effectuer et vérifier les résultats des
additions binaires suivantes :
(10111)2+(11101)2
(10010111)2+(1101011111)2
(111111)2+(1)2
(111111)2+(11)2
(111111)2+(111)2
2) Effectuer les additions suivantes après avoir
converti les nombres en binaire
(5)10+(15)10
(17)10+(23)10
(127)10+(1)10
On peut vérifier :
100110=2+4+32=38
1111101=1+4+8+16+32+64=125
10100011=1+2+32+128=163=125+38
4
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Multiplication en binaire
Méthode de multiplication
Exercices
La méthode de multiplication utilisée avec les
entiers s’applique aussi en binaire, encore plus
simplement puisque la seule table à retenir
est: 0x0=0, 0x1=1, 1x0=0 et 1x1=1
Exemple
Multiplions (101)2 par (1101)2 :
Retenues
1
1
nombre 1 (n1)
nombre 2 (n2)
1
1er chiffre de n2
1
0
1
1
0
1
1
0
1
2ème chiffre de n2
0
0
0
Addition
0
1
0
1
3ème chiffre de n2
1
0
1
Addition
1
1
0
0
1
1
0
1
0
0
0
0
0
1
4ème chiffre de n2
Addition
1
1) Effectuer et vérifier les résultats des
multiplications binaires suivantes :
(10111)2x(11)2
(10010111)2x(1101)2
(111111)2x(10)2
(111111)2x(100)2
(111111)2x(1000)2
2) Effectuer les multiplication suivantes après
avoir converti les nombres en binaire
(2)10x(16)10
(17)10x(23)10
(122)10x(7)10
La vérification se fait en convertissant :
(101)2 = 1+4=5, (1101)2=1+4+8=13
5x13=65
(1000001)2=1+64=65
5
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Le complément à 2
Dans la suite nous considèrerons des nombres
entiers représentés en base 2 sur 8 bits, soit 8
‘chiffres’ 0 ou 1
On peut représenter ainsi 28=256 nombres
positifs différents, allant de 0 à 255
Mais on peut également définir une convention
qui permettra par exemple de représenter les
nombres allant de -128 à +127, c’est le
complément à 2, inventé pour que l’addition
continue à fonctionner sur ces représentations
La première condition sur cette représentation
est que le bit de poids fort (le plus à gauche)
vaut 0 si le nombre est positif, 1 s’il est négatif
Méthode de détermination
Pour représenter le complément à 2 d’un
nombre positif, et obtenir ainsi son négatif on
effectue les opérations suivantes :
On inverse tous les chiffres (1 en 0, 0 en 1)
On rajoute 1 au résultat
On passe le bit de poids fort à 1
Représentation des négatifs
Exemple
Soit 125=(01111101)2,
on veut trouver l’écriture de -125 en
complément à 2
1) On inverse :
(01111101)2 donne (10000010)2
2) On rajoute 1=(00000001)2
10000010
+00000001
=10000011
Le nombre -125 se représente donc
(10000011)2 en complément à 2
D’ailleurs :
01111101
+ 10000011
=100000000
=00000000 sur 8 bits (125+(-125)=0)
Attention, on reste bien sur 8 bits, ainsi le
complément à 2 de 0=(00000000)2 donne
Inverse:11111111
+1=100000000 sur 9 bits, mais on ne
considère pas le 9ème bit, donc le résultat est
bien 00000000=0, soit 0=-0
6
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
La base 16 en informatique
Base 16:Hexadécimal
Conversions binaire-héxadécimal
En informatique, la représentation binaire est
celle utilisée par les ordinateurs, mais elle est
peu lisible par les humains qui lui préfère la
notation hexadécimale, plus facile à convertir
en binaire que la décimale
Elle utilise 16 ‘chiffres’ : 0,1,2,…,9,A,B,C,D,E,F
Ainsi (A)16=(10)10=(1010)2
(F)16=(15)10=(1111)2
Les chiffres hexadécimaux représentent donc
tous les binaires sur 4 bits :
0
0000
8
1000
1
0001
9
1001
2
0010
A
1010
3
0011
B
1011
4
0100
C
1100
5
0101
D
1101
6
0110
E
1110
7
0111
F
1111
Cette conversion se fait simplement en
découpant le nombre binaire à convertir en
paquet de 4, en commençant par la DROITE et
en rajoutant éventuellement des 0, puis en
utilisant le tableau de gauche.
(0101111011)2=(0001 0111 1011)2=(17B)16
De même dans l’autre sens, le nombre (ABC)16
devient (1010 1011 1100)2
7
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Exercices
6) Convertissez en décimal les nombres
binaires codés en complément à 2 sur 8 bits:
(10010111)c2; (00010111)c2; (11010100)c2;
(11110111)c2;
7) Codez sur 16 bits en complément à 2 le
nombre - 693
Exercices sur le complément à 2
1) Quelle sont les valeurs entières des binaire
représentés par (11010111)c2,(11111110)c2
; (10000010)c2 en complément à deux.
2) Codez sur 8 bits les entiers -75, -12 et
-213 en appliquant la règle et en vérifiant
que la séquence obtenue est correcte.
3) Faire l'addition de -3 et de +10 après avoir
représenté ces nombres en complément à 2
sur 8 bits. Vérifiez que le résultat est
correct.
4) On dispose de 8 bits pour coder un nombre.
Quel est le plus petit entier négatif et le
plus grand entier positif que l'on puisse
représenter ?
En général, les machines (les ordinateurs)
disposent de mémoires sur 16 bits et les
plus récentes sur 32 bits. Dans ces deux
cas, quel est le plus petit entier négatif ?
5) Soient deux nombres a=+95, b=+76,
Codez a et b sur 8 bits en complément à 2.
Calculez à partir du codage a+b.
Codez ensuite –b et calculez a+(-b).
Que constatez vous ? Quelle conclusion en
tirez vous ?
Exercices sur l’hexadécimal
1) Convertir les nombres binaires suivants en
hexadécimal :
(10011110)2, (101100111)2 , (111111)2 ,
(1111111)2 , (101010101)2 , (1101101101)2
2) Convertir les nombres hexadécimaux
suivants en binaire puis en décimal :
(AA)16, (BAC)16, (2A)16, (A2)16, (123)16
3) Dans un logiciel comme Photoshop, les
couleurs sont codées par 6 nombres
hexadécimaux représentant les valeurs de
Rouge, Vert, Bleu (RVB). Ainsi (FFFFFF)16
représente le blanc et (000000)16 le noir.
Combien de couleurs différentes peut-on
représenter dans ce mode ?
Combien de bits utilise ce codage ?
8
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Les nombres décimaux
Nombres décimaux en base 10
Pour représenter les nombres décimaux, la
notation 'a virgule' utilise les puissances
négatives de 10. Ainsi 0,517 représente
5 dixièmes + 1 centième + 7 millièmes, soit
5
Méthode de détermination de l'écriture
binaire
Pour déterminer en binaire l'écriture d'un
décimal, on utilise cette méthode
multiplier la partie décimale par 2
si la partie entière est supérieur à 0, on rajoute
1 à l'écriture binaire
sinon on rajoute 0
On recommence tant qu'il y a des chiffres
derrière la virgule
Ou que l'on n'a pas atteint le nombre de chiffres
binaires souhaités
1
1
1
1
1
1
1
7
5 1 1 2 7 3
10
10
10
1000
100
10
Nombres décimaux en binaire
De la même manière, en binaire
0,101 représente
1
Exemple
1
1
1 1 1
0
1
0,625
21
22
24 2 8
partie décimale
On a :
2-1
2-2
2-3
2-4
2-5
2-6
0,5
0,25
0,125
0,0625
0,03125
0,015625
Rappel :
1
n
2
2n
fois 2
N en base 2
0,3515625
0,703125<1
0,0
0,703125
1,40625 ≥ 1
0,01
0,40625
0,8125<1
0,010
0,8125
1,625 ≥ 1
0,0101
0,625
1,25 ≥ 1
0,01011
0,25
0,5<1
0,010110
0,5
1≥1
0,0101101
0
STOP
0,01011010
Ainsi, (0,3515625)10=(0,01011010)2
9
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Avec une partie entière
Conséquences
Avec cette méthode, le nombre
(101,01011010)10 représente donc
(5,3515625)2
Problèmes de la notation binaire
Avec cette notation, certains nombres
décimaux ont une écriture binaire infinie
Exemple : N=(0,2)10
partie décimale
aspects pratiques
fois 2
N en base 2
0,2
0,4<1
0,0
0,4
0,8<1
0,00
0,8
1,6≥1
0,001
0,6
1,2≥1
0,0011
0,2
0,4<1
0,00110
0,4
0,8<1
0,001100
0,8
1,6≥1
0,0011001
0,6
1,2≥1
0,00110011
0,2
0,4<1
0,001100110
0,4
0,8<1
0,0011001100
0,8
1,6≥1
0,00110011001
Soit (0,2)10=(0,00110011001100110011…)2
Pour un ordinateur, le nombre 0,2 n'a pas de
représentation finie, il est obligé de l'arrondir.
Si on le considère avec 16 'bits' après la
virgule, il vaut en fait
(0,0011 0011 0011 0011)2
qui est égal à
1 1 1 1
1
1
1
1
23 2 4 27 28 211 212 215 216
0,1999969482 0,2
Si on fait sur tableur les valeurs de la suite
u0=0,2, un+1=6un-1, on obtient :
au lieu d'obtenir une
valeur constante
égale à 0,2
10
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
Conversion du binaire vers le décimal
Pour convertir un nombre décimal binaire en
décimal de base 10, il suffira de traiter sa
partie décimale, puis de la diviser par 2n où n
est le nombre de bits derrières la virgule.
Exemple
(0,100111)2 vaut, en base 10 :
(100111)2=1+2+4+32=39
Il y a 6 chiffres derrière la virgule
26=64
Donc
0,1001112 396
39
0,609375
2 10 64 10
S'il y a une partie entière (devant la virgule),
on la convertit à part
Exemple
(101,100111)2=(5,609375)10
Les nombres décimaux
Exercices
1) Codez sur 8 bits les nombres décimaux
suivants :
0,12345 ; 0,328125 ; 0,99999; 0,53515625
2) Parmi les nombres précédents lesquels ont
un développement décimal fini ?
Donnez la valeur approchée décimale des
autres.
3) Convertissez en base 10 les décimaux
binaires suivants
(0,11010111)2; (0,00010001)2
(0,01010101)2; (0,10101010)2
4) Codez sur 8 bits les nombres décimaux
0,10039 et 0,1004 ; Que constatez-vous ?
Quelle précision maximale peut-on obtenir sur
un binaire décimal avec 8 bits derrière la
virgule ? Quelle précision aurait-on sur 32 bits
? sur 64 bits ?
5) Si on pouvait mémoriser les nombres
suivants sur une infinité de bits, quelle serait
sa valeur en base 10 :
(0,10101010101….)2 ?
(0,110011001100…)2 ?
(0,11010110101101011010…)2 ?
6) Convertissez 1/3 en binaire
11
s.friedelmeyer@ac-toulouse.fr , le 18/09/2012
Chapitre I - arithmétique
En binaire, il existe d'autres opérateurs que
l'addition, la soustraction ou la multiplication
Autres opérateurs
Le ET (AND), noté &&
Le ET utilise les règles suivantes :
1 && 0 = 0 && 1 = 0 && 0 = 0
1 && 1 = 1 (2 '1' obligatoires)
Ainsi
1001 0111
&&
1101 0001
=
1001 0001
Division par deux
Nous avons vu que le décalage vers la
GAUCHE équivaut à une division entière par 2
(1101 0100)2 = (212)10
(.110 1010)2 = (106)10=212/2
(. .11 0101)2 = (53)10=106/2
(. . .1 1010)2 = (26)10=53/2
Multiplication par deux
Le ET est fortement utilisé dans la création de
masques pour les réseaux
De même le décalage vers la DROITE équivaut
à une multiplication par 2
(0001 0011)2=(19)10
(0010 0110)2=(38)10
(0100 1100)2=(76)10…
Le OU (OR), noté ||
Le OU utilise les règles suivantes
1 || 0 = 0 || 1 = 1 || 1 = 1
0 || 0 = 0 (au moins un 1)
Ainsi
1001 0111
||
1101 0001
=
1101 0111
Le OU exclusif (XOR) ou
Le utilise les règles suivantes :
10=01=1
1 1 = 0 0 = 0 (un et un seul 1)
Ainsi
1001 0111
1101 0001
=
0100 0110
Le peut servir à inverser les bits
1001 1100 1111 1111=0110 0011
12
Partager ce document
Télécharger le fichier
Faire un lien vers ce document
Lien permanentpour un message, un forum, un réseau social
Lien courtpour un SMS ou un profil
Code HTMLpour un site ou un blog
Du même auteur
- ENT PGCD10/04/2013
- ENT loisDensité30/03/2013
- ENT logarithme30/03/2013
- ENT-Matrices18/12/2012
- ENT Limites18/12/2012
- ENT-arithmétique117/10/2012
Sur le même sujet
Les mots qui reviennent le plus dans ce document. Chacun lance une recherche dans les fichiers publics.
Commentaires
Pour voir les commentaires déjà publiés ou ajouter un commentaire, Connectez-vous ou Créez un compte.






