Académique Documents
Professionnel Documents
Culture Documents
* Correction TD INFO2
*************************************************************************
* TD1
*************************************************************************
*******************************************
1.1 Rappels les bases de numération
$45A + (6607)8 =
1114 + 3463 = 4577=(11e1)16=(10741)8
(2132)8 + (6607)8 = (10741)8
$45A + $d87 =(11e1)16
*******************************************
1.2 Format entier non signé
Pour n=8bits
Plage X entre 0 et 2**8-1
DX=1 ou DX=+/-0.5lsb
X=94=$5e=5*16+14=%01010100
Incertitude relative et absolue
*******************************************
1.3 Format entier signé (bit de signe)
Pour n=8bits
Plage X entre -2**7-1 et 2**7-1
DX=1 ou DX=+/-0.5lsb
X=94=$5e=5*16+14=%01010100
"X"=-94=$5e=5*16+14=%11010100=$5e | $80
*******************************************
1.4 Format entier signé (c'2)
Pour n=8bits
Plage X entre -2**7 et 2**7-1
DX=1 ou DX=+/-0.5lsb
X=94=$5e=5*16+14=%01010100
1ere méthode
X=-94=-128+x x=34 à coder dans le champ positif
Donc "X"=%10100010
X=-94
"X"=256-"-X"=256-94=162=0xa2=%10100010
*******************************************
1.5 Arrondi-Troncature - extension de signe
FLOOR
X=39=0x27
X/4=9.75
floor(X/4)=floor(%00100111>>2)
floor(X/4)=%001001.11=floor(9.75)=9
Erreur absolue DX=0.75 lsb - Relative DX/X=0.75/9=08%
ROUND
X=39=0x27
X/4=9.75
round(X/4)=floor((%00100111+%00000010)>>2) - %00000010 est le poids correspondant
au 1/2 lsb du résultat final
round(X/4)=floor(%001010.01)=floor(10.25)=10
Erreur absolue DX=0.25 lsb - Relative DX/X=0.25/9=03%
FLOOR
X=-39=-0x27<->255-39=0x100-0x27=0xd8
X/4=-9.75
floor(X/4)=floor((%11010101)>>2)
floor(X/4)=floor(%"xx"110101.01)=floor(-10.25)=-10
$100-$f6=-10
Erreur absolue DX=0.25 - Relative DX/X=0.25/9=03%
ROUND
X=-39=-0x27<->255-39=0x100-0x27=0xd8
X/4=-9.75
round(X/4)=floor((%11010100+%00000010)>>2)
round(X/4)=floor(%xx110101.10)=floor(-10.50)=-10
Erreur absolue DX=0.25 - Relative DX/X=0.25/9=03%
*******************************************
Extension de signes
Justification à gauche
X16g=0x2700=39*256=9984
Correction : division par 2**8 signée donnant x16=x16g/256=0xss27
ss vaut 00 pour opération non signée
ss vaut 00 pour X=>0ou 11 pour X<0
Justification à droite
X16d=0xss27=$27
Correction : extension de signe (copie de format signé à signé)
x16=concatenation(ss,x16d)
ss vaut 00 pour opération non signée
ss vaut 00 pour X=>0 ou 11 pour X<0
*******************************************
1.6 Multiplication - extension de signe
X=+39=0x27
2*X=78=0x4e
X=39 -> "+39"=0b 0010 0111
2*X=78 -> "+78"=0b 0100 1110 injection d'un zero sur le lsb pour décaler à gauche
En assembleur
lsl=asl décalages logique et arithmétique vers la gauche (identiques) *2
lsr, asr décalages logique et arrithmétique vers la droite /2