Vous êtes sur la page 1sur 12

Université des Sciences et de la Technologie d’Oran

Département d'Electronique

Module DSP

Série N°1: FORMAT DES NOMBRES

Année 2020/2021

Professeur Abdelaziz Ouamri

1.) Conversion du nombre décimal entier non signé 32928 en nombre binaire sur 16 bits.
2.) Quelle est la valeur de la suite 1101100101110101 qui représente un entier signé en
complément à 2 sur 16 bits.
3.) Donner la représentation en base dix des nombres suivants :(10011, 11101)2 et
(A23C, CC09)16.

4.) Coder les nombre entiers -3 et 5 sur 16 bits en code complément à deux,. Donner une
représentation hexadécimale.
5.) Effectuer les opérations suivantes en code complément à deux 8 bits :
120+45-70 et 120-45+70 , -126-85. Conclusion ?
6.) En supposant que les entiers 61 et -61 sont codés sur un octet en utilisant les
représentations signe et valeur absolue et code complément à 2. Effectuer l’addition
binaire de ces entiers ainsi codés . Conclusion ?
7.) Conversion du nombre décimal entier signé -12928 en nombre hexadécimal
8.) Nombre fractionnaire 3.1263427734375 sur 16 bits avec le maximum de précision.
9.) Exprimer les nombres 1.726945 et 9.129573 en binaire puis en hexadécimal avec le
format 2.14 et 5.11.
10) Convertir le nombre écrit en format IEEE (0100 0001 0010 0100 0000 0000 0000
0000)2
, (1011 1101 0100 0000 0000 0000 0000 0000)2 et (0101 0101 0110 0000 0000 0000 0000
0000)2 en décimal.
11) Conversion de -18.75 et 525,5.en nombre binaire à virgule flottante à 32 bits.
12) Convertir le nombre décimal 8,625 en virgule flottante suivant la norme IEEE 754 .
Correction

1.) Conversion du nombre décimal entier non signé 32928 en nombre binaire sur 16 bits.

Méthode des divisions successives On exploite le reste de la division par 2:


1000000010100000

32928/2=16464 reste 0

16464/2=8232 reste 0

8232/2=4116 reste 0

4116/2= 2058 reste 0

2058/2=1029 reste 0

1029/2=514 reste 1

514/2=257 reste 0

257/2=128 reste 1

128/2=64 reste 0

64/2=32 reste 0

32/2=16 reste 0

16/2=8 reste 0

8/2=4 reste 0

4/2=2 reste 0

2/2=1 reste 0
Poids forts
1/2 =0 reste 1

2.) Quelle est la valeur de la suite 1101100101110101 qui représente un entier signé en
complément à 2 sur 16 bits.

Le nombre 1101100101110101 en complément à deux est négatif parce que le


premier bit est égal à 1 .
La valeur absolue est obtenue en réalisant le complément à 1 auquel on ajoute +1.
complément a 1 0010011010001010
+ 1
-------------------------------------------

= 0010011010001011

Ce qui donne en décimal : (0010 0110 1000 1011)2 =(268B)16


=2x163+6x162+8x161+11x160 = 9867
Ainsi (1101100101110101)2= -(9867)
3.) Donner la représentation en base dix des nombres suivants.

(10011, 11101)2 et (A23C, CC09)16


4 3 2 1 0 -1 -2 -3 -4 -5
(10011, 11101)2=1×2 +0x2 +0x2 +1×2 +1×2 +1×2 +1×2 +1×2 +0×2 +1x2

= (19.90625)10.

(A23C ,CC09)16 =10×163+2×162+3×161+12×160+12×16-1+12×16-2+9×16-4

= (41532.79701)10
3.) Coder les nombre entiers -3 et 5 sur 16 bits en code complément à deux,. Donner une
représentation hexadécimale.

-3 en code complément à deux :

(+3)10 =(0000 0000 0000 0011)2

La représentation de -3 est obtenue par le complément à deux de (+3)10 , soit

(-3)10 =((1111 1111 1111 1100+0000 0000 0000 0001)=(1111 1111 1111 1101)2.

Représentation hexadécimale (-3)10 =(FFFD)16 .

FFF : représente l’extension du signe.

Avec un microprocesseur ou un DSP travaillant sur 32 bits on aurait : (-3)10 =(FFFF FFFD)16

+5 en code complément à deux : (+5)10=(0000 0000 0000 0101)2=(0005)16.

4.) Effectuer les opérations suivantes en code complément à deux 8 bits :

Le code complément à deux sur 8 bits permet la représentation des nombres entre -27 et
27-1 soit une dynamique [-128 , +127].
120+45-70 et 120-45+70 , -126-85. Conclusion ?

Représentation en code complément à deux des différents nombres :

(120)10 =(0111 1000)2 (45)10 =(0010 1101)2 (70)10 =(0100 0110)2

(-70)10 =(1011 1010)2 (126)10 =(0111 1110)2 (-126)10 =(1000 0010)2

(85)10 =(01010101)2 (-85)10 =(10101011)2

- Calcul de la somme 120+45-70=120+45+(-70)=+95 -128<+95<+127

0111 1000

+ 0010 1101

--------------------------

= 1010 0101 A ce stade on remarque un débordement (overflow) si on se limite à 8 bits

+ 1011 1010 , mais on continue à ajouter +(-70) en utilisant toujours 8 bits

--------------------------

= 01011111 soit (+95)10 le résultat est correct.

- Calcul de la somme 120-45+70=120+(-45)+70=+95 -128<+95<+127

120+(-45)=75 soit 0100 1011 un résultat intermédiaire juste, mais en continuant la somme

75+70= (10010001)2 = (-111)10 ce qui est faux, normalement on devrait trouver +145
ce qui est supérieur à +127 ( nombre maximum codé sur 8 bits).

, -126-85=+(-126)10+(-85)10= (00101101)2 soit (45)10 ce qui est faux, normalement on


devrait trouver -211 ce qui est inférieur à -128 ( nombre minimal codé sur 8 bits).

Conclusion :
Le code complément à deux ( à nbits) a plusieurs propriétés intéressantes :

- Codage bipolaire avec une seule combinaison pour le zéro


- Aucune différence entre Addition et soustraction , ce qui permet aux microprocesseurs
et aux DSPs d’avoir juste un opérateur arithmétique Additionneur.
- Une autre propriété intéressante pour le traitement numérique du signal. Elle
concerne le calcul de la fonction produit scalaire 𝑦 = ∑ ℎ(𝑘)𝑥(𝑥) qui très
fréquente dans les algorithmes du traitement numérique du signal. En effet si

−2 ( )
≤𝑦= ℎ(𝑘)𝑥(𝑥) ≤ 2( )
−1

On obtient un résultat correct, même en présence des débordements intermédiaires.

5.) En supposant que les entiers 61 et -61 sont codés sur un octet en utilisant les
représentations signe et valeur absolue et code complément à 2. Effectuer
l’addition binaire de ces entiers ainsi codés. Conclusion ?

Parmi les codes utilisés dans la représentation des nombres signés on peut citer les codes
suivants : Code complément à 1, Code complément à 2 et code signe valeur absolue ( signe
amplitude, signe-module).

Leur différence se situe au niveau des opérations arithmétiques. C’est le code Code
complément à 2 qui convient aux microprocesseurs et DSP car l’addition et la soustraction
sont traitées de la même manière ( un additionneur au lieu d’un additionneur et d’un
soustracteur).

On sait bien que 61 -61=0.

code signe valeur absolue Code complément à 2


00111101 (61) 00111101 (61)

+ 10111101 (-61) + 11000011 (-61)

= 11111010 (-122) Faux = 00000000 (0) Correct

7.) Conversion du nombre décimal entier signé -12928 en nombre hexadécimal

Le nombre 12928 a pour code binaire 0011001010000000

Son complément à deux est (1100110110000000)2.

Donc (-12928)10=(1100110110000000)2=(CD80)16.

8.) Nombre fractionnaire 3.1263427734375 sur 16 bits avec le maximum de précision.

9.) Exprimer les nombres 1.726945 et 9.129573 en binaire puis en hexadécimal avec le
format 2.14 et 5.11.

Représentation les nombres 1.726945 et 9.129573 en binaire puis en hexadécimal avec le

format 2.14 et 5.11.

Pour la partie fractionnaire on utilise la méthode des multiplications successives.

Exemple : Représentation du nombre (3,5625)10

0, 5625 x 2
1, 125 x 2
0, 25 x 2
0, 5 x 2
1, 0 x 2
0, 0
Réponse : (11,10010000)2 Format Q2.8
Vous suivez le principe utilisé dans l’exemple précédent. On obtient les résultats suivants

- (1.726945)10 =(01.10111010000110)2 = ( 1.BA18)16 Format Q2.14


L’erreur de conversion est 0.00001628906250

- (1.726945)10 =(00001.10111010001) = ( 1.BA2)16 Format Q5.11

L’erreur de conversion est 0.00010578125

(9.129573)10= (1001.00100001001)2=(09.213)16 si on fait l’arrondi

10) Convertir le nombre écrit en format IEEE (0100 0001 0010 0100 0000 0000 0000 0000)2
, (1011 1101 0100 0000 0000 0000 0000 0000)2 et (0101 0101 0110 0000 0000 0000 0000
0000)2 en décimal.
**************************************************************************

***Conversion en format IEEE 754 de (0 100 0001 1001 00010000000000000000 )2

Signe Exposant biaisé Pseudo mantisse


Signe S Exposant E pseudo mantisse M
un bit 8 bits 23 bits
Le bit de signe est à 0, donc S=0 et le nombre correspondant est positif.

Exposant=(10000011)2=(131)10 est codé sur 8 bits.

Le biais =127. L’exposant est alors e = E – biais = 131 – 127=4.

La pseudo mantisse M est codée sur 23 bits M=(00100010000000000000000)

•m = (1,M)2 = =(1, 00100010000000000000000)2=(1,0010001)2

e
+m × 2 =(1,0010001)2 × 24 =(10010,001)2= 18.125

*****************************************************************

*** Conversion en format IEEE 754 de (1011 1101 0100 0000 0000 0000 0000 0000)2

(1011 1101 0100 0000 0000 0000 0000 0000)2

•S = 1 → veut dire que le nombre est négatif

Exposant=(0111 1010)2=(122)10 est codé sur 8 bits.

Le biais =127. L’exposant est alors e = E – biais = 122 – 127=-5.


La pseudo mantisse M est codée sur 23 bits M=(100 0000 0000 0000 0000 0000)
•m = (1,M)2 = =(1, 100 0000 0000 0000 0000 0000)2=(1,1)2
e
• –m × 2 = –(1,1)2 × 2–5 = –(11)2 × 2–6 = –3 × 2–6 = –0,046875.

***********************************************************************

Conversion en format IEEE 754 de (0101 0101 0110 0000 0000 0000 0000 0000)2

S=0 nombre positif ; Exposant=(10101010)2=(170)10 , ainsi e=170-127=43

M=(110 0000 0000 0000 0000 0000)2 ; m=(1, 110 0000 0000 0000 0000 0000)
Le nombre correspondant est +(1,11) × 243 = +(111) × 241 =7x241 ≈ +1,5393 × 1013

11) Conversion de -18.75 et 525,5.en nombre binaire à virgule flottante à 32 bits.

Conversion de -18.75

-18.75 est un nombre négatif donc S=1

Sa valeur absolue est (18.75 )10=


(10010.1100000000000000)2=(1,00101100000000000000)2 x 24 ce qui implique

M=(001 0110 0000 0000 0000 0000)2 et e=4 soit l’exposant E=biais +e=127+4=131

E=(131)10=(10000011)2

Le format IEEE 754 de -18.75 est

Signe Exposant biaisé Pseudo mantisse


1 10000011 001 0110 0000 0000 0000 0000

Conversion de 525.5

525.5 est un nombre positif donc S=0

Sa valeur absolue (525.5)10=(1000001101.100000000000000)2=


2
(1,000001101100000000000000) x 29 Donc E=127+9=(136)10=(10001000)

et M=(000 0011 0110 0000 0000 0000)2

Le format IEEE 754 de 525.5 est

Signe Exposant biaisé Pseudo mantisse


0 10001000 000 0011 0110 0000 0000 0000

12) Convertir le nombre décimal 8,625 en virgule flottante suivant la norme IEEE 754 .

Conversion de 8,625 en binaire :

Partie entière : 8 => 1000


8,625 => 1000,101
Partie décimale : 0,625 => 0,101

Normalisation : 1000,101 x 20 <=> 0,1000101 x 24


Pseudo-normalisation IEEE 754 : <=> 1,0001010 x 23
(de la forme 1,xxxx où xxx = pseudo mantisse)
Décomposition du nombre en ses divers éléments :
Bit de signe : 0 (Nombre >0)
Exposant sur 8 bits biaisé à 127 => 3 + 127 = 130 => 10000010
Pseudo mantisse sur 23 bits : 0001010 00000000 00000000

Signe Exposant biaisé Pseudo mantisse


0 100 0001 0 000 1010 0000 0000 0000 0000

Vous aimerez peut-être aussi