Cnam-Paris-2008-2009 CSC012 Lundi 6 Octobre 2008
F.Guiraud 1
1. Ecriture d’un nombre en machine Système binaire
Le système binaire est un système de numération fondé sur la position des chiffres, deux en l’occurrence, 0 ou 1, appelés bits
Exemples : 110101
2 a comme équivalent décimal 1×25+ 1×24 + 0×23+ 1×22+ 0×2 + 1 = 53 101.1101
2 a comme équivalent décimal 1×22+ 0×2 + 1 +1×2-1+ 1×2-2+ 0×2-3+ 1×2-4 soit 5.8125
Conversion décimal–binaire : On trouve l’équivalent binaire d’un nombre décimal N en traitant séparément sa partie entière et sa partie décimale
Pour convertir 109 en équivalent binaire : Divisions quotients restes
109÷2 54 1
54÷2 27 0
27÷2 13 1
13÷2 6 1
6÷2 3 0
3÷2 1 1
1÷2 0 1 ⇒ 109 = 1101101 2 Pour convertir 0.78125 en équivalent binaire : Multiplications partie entière 0.78125× 2 = 1.56250 1
0.5625 × 2 = 1.125 1
0.125 × 2 = 0.25 0
0.25 × 2 = 0.5 0
0.5 × 2 = 1.0 1
La partie fractionnaire nulle indique la fin des calculs. 0.788125 = 0.11001 2 Remarque : l’équivalent binaire d’une fraction décimale qui tombe juste ne tombe pas obligatoirement juste N = 0.6 ; Multiplications partie entière 0.6× 2 =1.2 1
0.2× 2 = 0.4 0
0.4× 2 = 0.8 0
0.8× 2 = 1.6 1 0.6 = 0.1001 1001 1001…. Compléments : beaucoup d’ordinateurs rangent les nombres négatifs sous la forme de leurs compléments : Nombre décimal 4308 4991 754 123 Complément à 9 5691 5008 245876
Complément à 10 5692 5009 245877 Le complément sert dans le calcul d’une différence :
D = B – A = B – A +(9999 + 1 – 10000) = B + [(9999 –A )+1 ] - 10000
9999 – A est le complément à 9 de A, (9999 –A )+1 est le complément à 10 de A.
D est la somme de B et du complément à 10 de A - 10000.
Exemple :
B= 6142 et A = 4816 , complément à 10 de A : 5184, D = B-A = 6142 + 5184 – 10000 D = 11326 – 10000 = 1326
Cnam-Paris-2008-2009 CSC012 Lundi 6 Octobre 2008
F.Guiraud 2
Voyons dans un calculateur où les registres contiennent des nombres de 8 chiffres
A 0 0 0 0 1 8 2 5 0 1
B 0 0 0 0 0 4 2 4 1 6
Suite des calculs :
0 0 0 0 1 8 2 5 0 1 A
9 9 9 9 9 5 7 5 8 4 Complément
à 10 de B Différence : D = A – B = 140085 , le 1 en tête à disparu.
Cas où B > A , A = 2148, B = 5872
Calculons A – B , différence négative. On ajoute le complément de B à A : 2148 + 4128 = 6276
Il faut soustraire 10000 à 6276 donc A – B = - 3724 Compléments binaires :
Nombre binaire : 11100101 1001000101 1011110111 Complément à 1 : 00011010 0110111010 0100001000 Complément à 2 : 00011011 0110111011 0100001001 Calculons D = A – B = 11 100 101 – 010100101
Complément à 2 de B = 101 011 011
D = A + Complément à 2 de B et on retire le 1 le plus à gauche.
D = 01000 000
Cas où B > A , B = 1100011, A = 1010101
Pour calculer A- B, on ajoute le complément de B à A, 1010101 + 0011101
1110010
Il n’y a pas de 1 à supprimer en 8ème position, donc on n’a pas la différence A – B, il faut soustraire 10 000 000, A – B = - 0011100
Système octal
Base 8 : on a besoin de 8 chiffres 0, 1, 2, 3, 4, 5, 6, 7. Comme 8 = 23 , chaque chiffre octal est codé sur 3 bits en binaire
Chiffre en octal Equivalent binaire
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Pour convertir 4207
8 en binaire, on remplace chaque chiffre octal par son équivalent binaire :
100 010 000 111
Pour convertir 1110001101010 en son équivalent octal, on scinde le nombre binaire en groupe de 3 bits en commençant par la droite et on remplace chaque groupe par son équivalent octal : 1110001101010 = 001 110 001 101 010 = 16152
8 ; en base 10 : 1×4096+ 6×512 +1×64 + 5×8 +2 = 7274
Compléments :
Pour effectuer la soustraction Y = 7525
8- 3125
8 , on calcule d’abord le complément à 7 de 3125
8
en soustrayant de 7 chaque chiffre : 4652 puis on ajoute 1 à droite : 4653 ; puis on ajoute 75258 +4653
8 = 14400 et on retire le 1 à gauche soit Y = 4400
8
Cnam-Paris-2008-2009 CSC012 Lundi 6 Octobre 2008
F.Guiraud 3
2. Initiation à Matlab
Pour cette séance, le travail se fait uniquement en fenêtre de commande.
Expressions arithmétiques : Taper k=10 ; sin(2k+1
12 π) : k=10 ; sin((2*k+1)*pi/12) ans -0.7071
Taper : sin((2*k+1)*pi ans -9.8096e-016 , Matlab ne donne pas 0 mais un nombre très petit. (10-16)
Comparer 10^(-5), 10 e-5, 1e-5. : 10^(-5) ans 1.0000e-005 1. e-5 ans 1.0000e-005
10 e-5 ans 1.0000e-004 résultat 10 fois plus grand Calculer 2
2 ( 2+ 2 + 2- 2 )
sqrt(2)*(sqrt(2+sqrt(2))+sqrt(sqrt(2)-sqrt(2)))/4 ans 0.9239
Problèmes d’arrondis et précision des calculs
Calculer 1 -0.2-0.2-0.2-0.2 -0.2 1-0.2-0.2-0.2-0.2-0.2 ans 5.5511e-017 1-5×0.2 1-5*0.2 ans 0
Trouver le plus grand nombre x tel que ex soit calculable.
Par tâtonnement : exp(709) ans = 8.2184e+307 exp(710) ans =Inf
On voit donc que l’infini machine est de l’ordre de 10307
Taper n=10, a=1, b=1+10-n , calculer b-a, recommencer en prenant n=12,14,15….
n=15;b=1+10^(-n);a=1;b-a ans =1.1102e-015 Pour n=16, on trouve 0.
Trouver le plus grand n tel que n ! soit calculable Par tâtonnement : prod(1:170) ans =7.2574e+306
Pour Matlab, 1 :170 est une matrice ligne( ou vecteur) dont les termes sont tout les nombres de 1 à170 et l’instruction prod effectue le produit de ces termes.
Pour x = e50 et y= 1, calculer x+y-x et x-x +y
Seule l’expression x-x+y donne 1, l’autre donne0 car pour Matlab, e50+1 = e50
Vecteurs et matrices
Vecteur x ligne de composantes (1, 3, 5, 7, 9) : x=[1 3 5 7 9]
ou x=1 :2 :9
Si on veut le vecteur x^2 dont les composantes sont celles de x élevées au carré, x.^2 x.^2 ans 1 9 25 49 81
Vecteur x colonne de composantes (1, 3, 5, 7, 9) : x =[1 ;3 ;5 ;7 ;9]
Graphiques
On définit un intervalle x=-5 :0.01 :5
Pour tracer la courbe représentative de la fonction f(x)=x2-3x +2 , taper : plot (x, x.^2-3*x+2)
Pour tracer une deuxième courbe, par exemple g(x)= -2x+5, sur le même graphique : plot (x, x.^2-3*x+2, x, -2*x+5)
On peut aussi taper l’instruction hold on qui demande de mettre sur le même graphique toutes les courbes suivant l’instruction jusqu’à hold off.
Pour tracer une ligne brisée, passant par les points A(0, 1), B(-2,3), C( 3,2), A(0,1) : plot([0, -2, 3, 0], [1, 3, 2, 1])