Académique Documents
Professionnel Documents
Culture Documents
Codage binaire des entiers naturels (non signs) Codage binaire des entiers relatifs (signs)
Signe et valeur Complment un Complment deux Virgule fixe Virgule flottante Codage IEEE-754 C d IEEE 754
A. Khouas
Plan
Introduction 1. Codage des entiers naturels
1. 2. 3. 4. Codage dcimal g Codage binaire Codage hexadcimal Autres codages
Introduction
2. 3. 3
4. 4
5.
Comme les nombres sont infinies, il est difficile d associer dassocier un symbole diffrent chacun dentre eux d entre
==> systme de numration base et positionnelle
Conclusion
A. Khouas
A. Khouas
N = ak ak 1...a1a0 b = ai * bi
i =0
avec
0 ai b
Tout nombre entiers N peut tre reprsent dans nimporte quelle base b par :
N = ak ak 1...a1a0 b = ai * bi
i =0
Base b Puissance de b
avec
0 ai b
A. Khouas
avec
0 ai 9
Exemples :
73110 = 1*100 + 3*101 + 7*102 = 1 + 30 + 700 13710 = 7*100 + 3*101 + 1*102 = 7 + 30 + 100 31710 = 7*100 + 1*101 + 3*102 = 7+ 10 + 300
Conception sur FPGA - Chap. 2
7
A. Khouas
A. Khouas
avec
0 ai 1
Exemples :
11012 = 1*20 + 0*21 + 1*22 + 1*23 = 1 + 0 + 4 + 8 = 1310 11002 = 0*20 + 0*21 + 1*22 + 1*23 = 0 + 0 + 4 + 8 = 1210 10102 = 0*20 + 1*21 + 0*22 + 1*23 = 0 + 2 + 0 + 8 = 1010 0 2 1 2 0 2 1 2
Conception sur FPGA - Chap. 2
8
avec
0 ai F
A. Khouas
avec
0 ai 9
a prend beaucoup de place crire Difficile lire et crire (risque lev de faire une erreur)
Exemple : E l
97652410 = 111011100110100011002
Exemples :
10116 = 1*160 + 0*161 + 1*162 = 1 + 0 + 256 = 25710 CBA16 = 10*160 + 11*161 + 12*162 = 10 + 176+ 3072= 325810 5FF16 = 15*160 + 15*161 + 5*162 = 15 + 240+ 1280 = 153510
10
A. Khouas
A. Khouas
Codage BCD
Pour l codage direct des nombres dcimaux (sans passer les P le d di t d b d i ( l divisions successives par 2 ou les multiplications par les puissances de 2)
Codage Gray
Codage binaire ne permettant que la modification dun seul bit lors du passage dun nombre n au nombre (n+1) l d d b b ( 1)
Gray 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000
A. Khouas
2. Conversion de base
Dcimal --> Binaire
Division successives par 2
Poids f ibl P id faible
53 2 1 26 2 0 13 1
2. Conversion de base
Dcimal --> Hexadcimal
Divisions successives par 16
Fin des divisions
2 6 0 2 3 1 197 16
12
12 12
16 0
5310 = 1101012
Poids fort
2 1 1
2 0
19710 = C516
Binaire -->Dcimal Bi i D i l
Multiplication par les puissance de 2 11012 = 1*20 + 0*21 + 1*22 + 1*23 = 1+4+8 = 1316
Conception sur FPGA - Chap. 2
14
Hexadcimal -->Dcimal
Multiplication par les puissances de 16 23E16 = 14 160 + 3 161 + 2 162 = 14 + 48 + 512 = 57410 14*16 3*16 2*16
A. Khouas Conception sur FPGA - Chap. 2
15
A. Khouas
2. Conversion de base
Hexadcimal --> Binaire
Conversion en binaire spar de chaque symbole
1 0 0 1 1 0 1 1 0 1 0 4 D A
3. Oprations binaires
Les oprations daddition et de multiplication des d addition nombres binaires non signs sont effectues de la mme faon que les oprations daddition et de multiplication des nombres dcimaux
F 1 1 1 1
A. Khouas Conception sur FPGA - Chap. 2
17
1 0 1 1
16
A. Khouas
3.1 Addition
Retenues
3.1 Addition
Retenues
1 1 + 1 0 0
1 1 1 1 1 1 0 0 1 1 +
1 1 4 7 2 1 + = 1
1 B C 8
Addition binaire
Addition dcimale
Addition hexadcimale
Addition dcimale
A. Khouas
3.2 Multiplication
5 x 6 x
1 1 0 + + 1 1 1 0 1 0 1 1
0 1 0 1 . 1
1 0 0 . . 0
30
Solution :
Utilisation dun bit spcial appel bit de retenue (Carry) pour sauvegarder la dernire retenue en cas de dpassement de capacit p
Conception sur FPGA - Chap. 2
21
A. Khouas
A. Khouas
1 + =
1 1 0 0
1 0 1 0
1 1 1 1
1 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1
Addition dcimale
A. Khouas
A. Khouas
= (1) an1 * ai * 2i )
i= 0
n2
avec
0 ai 1
A. Khouas
24
A. Khouas
25
sv
a7 a6 a5 a4 a3 a2 a1 a0 +85 0 1 0 1 0 1 0 1
= (-11)
(-3) Bit de signe (+) Valeur absolue 1+4+16+64 85 1+4+16+64=85 Bit de signe (-) + = 8 5
1 0 0 0 0 0 1 1 + 0 0 0 0 1 0 0 0 = ?? ? ? ? ? ? ?
3 + (-8) = ( 5) (-5)
0 0 0 0 0 0 1 1 + 1 0 0 0 1 0 0 0 = ?? ? ? ? ? ? ?
A. Khouas
Z C @1 = Z 2
2. 2me cas : an 1 = 0 n-1
le nombre Z est ngatif et on :
Z C @1 = ( Z ) 2
A. Khouas Conception sur FPGA - Chap. 2
29
A. Khouas
avec 0 ai 1
Conversion dcimale
= 1+4+16+64 = 85 85
Calcul du complment logique (inverse logique) Conversion binaire dcimal Multiplication par (-1) p p ( )
A. Khouas
= -42
31
A. Khouas
1 1 0 1 0 1 0 0
A. Khouas
33
A. Khouas
3 + = 8 11
0 0 0 0 0 0 1 1 + 0 0 0 0 1 0 0 0 = 0 0 1 1 1 0 1 1
1 1 1 1 1 1 1 1 1 1 1 + 1 1 1 1 0 = 1 1 1 1 0 + = 1 1 1 1 0
1 00 1 11 0 11 1 1 00
1 1 1 3 + (-8) ( 8) = (-5) 0 0 0 0 0 0 1 1 + 1 1 1 1 0 1 1 1 = 1 1 1 1 1 0 1 0
(-3) ( 3) + 8 = 5
1 1 1 1 1 1 1 1 1 + 0 0 0 0 = 0 0 0 0 + = 0 0 0 0
1 1 0 0 1 0 0 0 0 1 0 0 1 0 1 0 1
A. Khouas
A. Khouas
avec 0 ai 1
ZC @ 2 = Z 2
2. 2me cas : an-1 = 0 n1
le nombre Z est ngatif et on :
Z C @ 2 = ( Z + 1) 2
Conception sur FPGA - Chap. 2
38
A. Khouas
39
0 0 0 0 1 0 1 0 +1
Conversion dcimale
= 1+4+16+32 ==> 53
Conception sur FPGA - Chap. 2
40
A. Khouas
1 1 1 1 1 1 1 1 1 1 1 0 1 + 1 1 1 1 1 0 0 0 = 1 1 1 1 0 1 0 1
1 1 1 0 0 1 0 1
A. Khouas
3 + (-8) = (-5)
0 0 0 0 0 0 1 1 + 1 1 1 1 1 0 0 0 = 1 1 1 1 1 0 1 1
(-3) + 8 = 5
A. Khouas
n-1
n-1
Z E (2n1 1) = Z 2 (2
n 1
1) = ( ai 2 ) (2
i i =0
n 1
n 1
1)
Le codage excdant 2 -1 est utilis pour coder l exposant lexposant dans le codage virgule flottante des nombres rels
Conception sur FPGA - Chap. 2 A. Khouas
n-1
Comparaison des diffrents codages sur 3 bits de nombres ngatifs C i d diff t d bit d b tif
46
47
A. Khouas
n-1
A. Khouas
a7 a6 a5 a4 a3 a2 a1 a0 a-1 a-2 a-3 a-4 Partie entire (8 bits) Partie fractionnelle f (4 bits)
R12 4 = ai * 2i 12,4
i= 7
RQm = (an 1an 2 ...a1a0 a1a2 ...a m +1a m )Qm = On a aussi : RQm
Conception sur FPGA - Chap. 2
i = m
a *2
i
n 1
Codage Q12,6 ou Q6
a5 a4 a3 a2 a1 a0 a-1 a-2 a-3 a-4 a-5 a-6 Partie entire (6 bits) Partie fractionnelle ( 6 bits)
R2 = m 2
50
R12,6 = ai * 2i
i =5
A. Khouas
R = ai * 2i
i= i =5
R = a5 a4 a3 a2 a1 a0 a-1 a-2 a-3 a-4 a-5 a-6 Partie entire (6 bits) Partie fractionnelle (6bits)
R = ai * 2i
i=5
12.8175
0 0
0 1 0
1 0 0
1 0 0
0 1 1
0 0 1
0 0 1
0 1 0
0 1 0
1 0 0
0 0 0
0 0 0
8+4+0.5+0.25+0.0675
A. Khouas
A. Khouas
Comme pour les nombres relatifs, la mthode la plus utilise est la mthode virgule fixe complment 2
A. Khouas Conception sur FPGA - Chap. 2
55
A. Khouas
R = a7 a6 a5 a4 a3 a2 a1 a0 a-1 a-2 a-3 a-4 Bit de signe g (1 bits) Partie entire (7 bits) Partie fractionnelle f (4 bits)
R=
RC @ 2 24
R = a5 a4 a3 a2 a1 a0 a-1 a-2 a-3 a-4 a-5 a-6 Bit de signe (1 bits) Partie entire (5 bits) Partie fractionnelle ( 6 bits)
R=
RC @ 2 26
On O a aussi : R = i
RC @ 2 2m
56
A. Khouas
R=
RC @ 2 2
6
R=
RC @ 2 26
Nombre positif
A. Khouas
A. Khouas
R=
RC @ 2 26
A. Khouas
61
0 0 0 0 1 0 1 0 +1
Conversion dcimale
= -1.375
A. Khouas
63
A. Khouas
1 1 0 1 1 1 0 1 Addition de 1
1 1 0 1 1 1 1 0
A. Khouas
65
A. Khouas
0 0 0 1 1 1 0 0 + 0 1 0 0 0 0 1 0 = 0 1 0 1 1 1 1 0
1 1 1 1 1 1 1 1 1 0 0 1 0 0 + 1 0 1 1 1 1 1 0 = 1 0 1 0 0 0 1 0
1 1 1 1 0 0 0 1 1 1 0 0 + 1 0 1 1 1 1 1 0 = 1 1 0 1 1 0 1 0
1 1 1 1 1 0 0 1 0 0 + 0 1 0 0 0 0 1 0 = 0 0 1 0 0 1 1 0
Addition en virgule fixe Q3 et C@2 de deux nombres de signes diffrents (1er cas)
Addition en virgule fixe C@2 de deux nombres de signes diffrents (2me cas)
A. Khouas
A. Khouas
A. Khouas
69
R = (1) S * M * 2 E
R = (1) S * M * 2 E
1 -2
0 20
0
-4
1 7
0 3
1
7
Nombre positif
+20*2 = 1.25
Nombre ngatif
-3*2 = -384
A. Khouas
R = (1) S * M * 2 E
0 1 1
0 0 1
1 0 1
1 1 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1 0 1
0 1 0
0 1 0
A. Khouas
R = a11 a10 a9 a8 a7 a6 a5 a4 a3 a2 a1 a0 S=Bit de Signe (1 bits) E= Exposant en C@2 (4 bits) M=Mantisse (7 bits)
1 -4
1
-3 3
1 5
0
-1 1
0 2 +2
0
-7 7
Nombre positif
2 =0.125
Nombre ngatif
A. Khouas
A. Khouas
0 1 1
0 0 1
1 0 1
1 1 0
0 0 0
0 0 0
0 0 1
0 0 0
0 0 0
1 0 0
0 1 0
0 1 0
-5
R = ( 1)S * 1.m 2 E (-1) 1 m* s : bit de signe 1.m : mantisse normalise (0 m < 1) e : exposant ( 127 e < 128) (-127
Conception sur FPGA - Chap. 2
77
A. Khouas
A. Khouas
R = (-1)S * (1 +
127+8+4+1= 140
0.5+0.25+0.125+0.0625=0.9375
+0 = 00000000ieee _ sp , 0 = 80000000ieee _ sp p p
R2 = 1 0 Nombre ngatif 1 1 0 0 0 0 0 1 0 0 0 0 0 0.5 0 0
64+32= 96
+ = 7 F 800000ieee _ sp , = FF 800000ieee _ sp
NaN (Not a Number) : lorsque e=11111111 et m diff. de 0
+ + = 011111111bb...bbiieee _ sp , = 111111111bb...bbieee _ sp i
Conception sur FPGA - Chap. 2
81
A. Khouas
FF 7 FFFFFieee _ sp p
2* 2254127 = 2128
3.4*1038
7 F 7 FFFFFieee _ sp
00400000 = 0.5*2-126 (formule 0.m car exposant = 00000000) 00880000 = 1.0625*2-126 10200000 = -0.25*2-126 (formule 0.m car exposant = 00000000) C0B00000 = -1.75*22 7F9D1234 = NaN
Conception sur FPGA - Chap. 2
82
A. Khouas
83
A. Khouas
R = (-1)S * (1 +
R = ( 1)S * 1.m 2 E (-1) 1 m* s : bit de signe 1.m : mantisse normalise (0 m < 1) e : exposant ( 1023 e < 1024) (-1023
Conception sur FPGA - Chap. 2
84
A. Khouas
A. Khouas
= (-1)s * (1+
Conception sur FPGA - Chap. 2
m2 1023 )* 2e-1023 2 52
A. Khouas
A. Khouas
Conclusion
Ce qui est important retenir :
Systme de numration bas et positionnel Codage des nombres non sign (entiers naturels)
Codage binaire Codage hexadcimal Additions binaire et hexadcimal
Codage signe et valeur g g Codage en complment 1 Codage en complment 2 Problme de dpassement de capacit (overflow)
A. Khouas