Professional 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