Académique Documents
Professionnel Documents
Culture Documents
Cours dalgorithmique
Mohamed El Marraki Modules M5 SMIA marraki@fsr.ac.ma
Plan
!! !!
Systmes de numration Systme de numration dcimale Reprsentation dans une base b Reprsentation binaire, Octale et Hexadcimale Transcodage ou changement de base
!!
Codage des entiers positifs (binaire pur ) Codage des entiers relatifs (complment 2 ) Codage des nombres rels ( virgule flottante) ASCII et ASCII tendu, Unicode ,
!!
!!
Codage dinformation
!!
!!
Dans un ordinateur, elles sont toujours reprsentes sous forme binaire (BIT : Binary digIT)
!!
une suite de 0 et de 1
4
Codage de linformation : permet dtablir une correspondance qui permet sans ambigut de passer dune reprsentation (dite externe) dune information une autre reprsentation (dite interne : sous forme binaire) de la mme information, suivant un ensemble de rgle prcise. Exemple : * Le nombre 35 : 35 est la reprsentation externe du nombre trente cinq * La reprsentation interne de 35 sera une suite de 0 et 1 ( 100011 )
!!
Linformation sera exprime par une suite de nombres (Numrisation) Chaque nombre est cod sous forme binaire (suite de 0 et 1) Chaque lment binaire est reprsent par un tat physique
6
!!
!!
(bit 0)
!!
Frquences (Modem) : dans un signal sinusodal !! Frquence f1 (bit 1) : s(t) = a sin ( 2!f1 t + " ) !! Frquence f2 (bit 0) : s(t) = a sin ( 2!f2 t + " )
.
7
!!
Systme de numration
!!
Systme de numration dcrit la faon avec laquelle les nombres sont reprsents. Un systme de numration est dfini par :
!!
!!
Un alphabet A : ensemble de symboles ou chiffres, Des rgles dcritures des nombres : Juxtaposition de symboles
8
!!
Numration Romaine
!!
!!
!!
!! !!
Lorsquun symbole est plac la droite dun symbole plus fort que lui, sa valeur sajoute : CCLXXI " 271 Lorsquun symbole est plac la gauche dun symbole plus fort que lui, on retranche sa valeur : CCXLIII " 243 On ne place jamais 4 symboles identique la suite : 9 scrit IX et non VIIII La plus grand nombre exprimable est : 3999 (MMMCMXCIX) Systme inadapt au calcul
9
Numration babylonienne
!!
Chez les Babyloniens ( environ 2000 ans av.J.C. ), les symboles utiliss sont le clou pour lunit et le chevron pour les dizaines. Cest un systme de position.
!!
204 : 7392 :
10
!!
!!
11
12
13
Numration dcimale :
!!
Cest le systme de numration le plus pratiqu actuellement. Lalphabet est compos de dix chiffres :
!!
A = {0,1,2,3,4,5,6,7,8,9} !! Le nombre 10 est la base de cette numration !! Cest un systme positionnel. Chaque position possde un poids. !! Par exemple, le nombre 4134 scrit comme :
4134 = 4 x 103 + 1 x 102 + 3 x 101 + 4 x 100
14
Un systme de numrotation positionnel pondr base b est dfini sur un alphabet de b chiffres : A = {c0,c1,,cb-1} avec 0 ! ci < b Soit N = an-1 an-2 ...a1 a0 (b) : reprsentation en base b sur n chiffres
!! !! !!
!!
ai : est un chiffre de lalphabet de poids i (position i). a0 : chiffre de poids 0 appel le chiffre de poids faible an-1 : chiffre de poids n-1 appel le chiffre de poids fort
!!
!!
Utilis il y a un certain temps en Informatique. Elle permet de coder 3 bits par un seul symbole.
16
!!
!!
17
Le transcodage (ou conversion de base) est lopration qui permet de passer de la reprsentation dun nombre exprim dans une base la reprsentation du mme nombre mais exprim dans une autre base. Par la suite, on verra les conversions suivantes:
!! !!
!!
Dcimale vers Binaire, Octale et Hexadcimale Binaire vers Dcimale, Octale et Hexadcimale
18
Soit N le nombre dtudiants dune classe reprsent en base dcimale par : N = 73(10) Reprsentation en Binaire? 73 1 2 36 2 0 18 2 0 9 1
73(10) = 1001001(2)
2 4 0 2 2 0 2 1 1
2 0
20
2 8 0
2 4 2 0 2 0
2 1
21
!! !!
!!
73(10) = 111(8)
22
!!
Soit N le nombre dtudiants dune classe reprsent en base dcimale par : N = 73(10) Reprsentation en Hexadcimale? 73 9 16 4 16 4 0
!!
73(10) = 49(16)
23
432110 =10E116
24
Premire solution :
!!
convertir le nombre en base binaire vers la base dcimale puis convertir ce nombre en base 10 vers la base b.
!!
Exemple :
!! !!
25
= 128 + 16 + 8 + 2
= 15410
26
Deuxime solution :
!! !!
Binaire vers dcimale : par dfinition Binaire vers octale : regroupement des bit en des sous ensemble de trois bits puis remplac chaque groupe par le symbole correspondant dans la base 8.(Table) Binaire vers Hexadcimale : regroupement des bit en des sous ensemble de quatre bits puis remplac chaque groupe par le symbole correspondant dans la base 16.(Table)
27
!!
28
0 1 2 3 4 5 6 7
8 9 A B C D E F
30
!!
1010011101(2)=669(10)
31
= 265478
32
!!
Soit N un nombre reprsent en base binaire par : N = 1010011101(2) Reprsentation Octale? 010 2 011 101(2) 3 5
(8)
N = 001 = 1
1010011101(2)= 1235(8)
33
!!
Soit N un nombre reprsent en base binaire par : N = 1010011101(2) Reprsentation Hexadcimale? N = 0010 1001 1101(2) = 2 9 D
(16)
35
1010011101(2)= 29D(16)
Exercice
37
Correction de lexercice
Dcimale 10 100 101 500 Binaire 00001010 01100100 01100101 11111010 0 Hxa. 0A 064 065 1F4 Octale 012 144 145 764
38
Plan
!! !!
!!
Systmes de numrotation Systme de numration dcimale Reprsentation dans une base b Reprsentation binaire, Octale et Hexadcimale Transcodage ou changement de base
!!
Codage des entiers positifs (binaire pur ) !! Codage des entiers relatifs (complment 2 ) !! Codage des nombres rels ( virgule flottante) Codage des caractres :
!! !! !!
!!
39
Avec des mots de n bits, il est possible de reprsenter 2n valeurs diffrentes. Par exemple : pour n=1, nous pouvons reprsenter deux valeurs 0 et 1. !! Avec deux bits, nous pouvons reprsenter 4 valeurs codes, 00, 01, 10 et 11. !! Avec trois bits, nous pouvons reprsenter 8 valeurs codes, 000, 001, 010, 011, 100, 101, 110 et 111. n !! Avec n bits, nous pouvons reprsenter 2 valeurs diffrentes.
!!
42
Arithmtique en base 2
!! Les
oprations sur les entiers sappuient sur des tables daddition et de multiplication : Addition 0 0 1 1 0 1 0 1 0 1 1
(1)
Multiplication 0 0 1 0
Retenu
0 1 0 1
0 0 0 1
44
Addition
la rgle en binaire est : 0 0 1 1 1 + + + + + 0 1 0 1 1 = = = = + 0, 1, 1, 0 avec 1 comme retenue 1 = 1 avec 1 comme retenue.
1 1 1 1
Exemple :
1 1 0 1 0 1 1 0 02 + 1 1 1 0 0 1 0 1 12 = 1 1 0 1 1 1 0 1 1 12
Exemple (Addition)
!!
!!
Addition binaire (8 bits) 10010110 + 01010101 11101011 Addition binaire (8 bits) avec overflow) : 10010110 + 01110101 100001011
overflow
(dbordement ou
46
Exemples
!!
Multiplication binaire
1 0 1 1 (4 bits) * 1 0 1 0 (4 bits) 0000 1011 . 0000. 1011 . 4 bits le rsultat 0 1 1 0 1 1 1 0 Sur est faux
Sur 7 bits le rsultat est juste Sur 8 bits on complte gauche par un 0
47
#! Il existe au moins trois faons pour coder : #!code binaire sign (par signe et valeur absolue) #!code complment 1 #!code complment 2 (Utilis sur ordinateur)
48
Le bit le plus significatif est utilis pour reprsenter le signe du nombre : si le bit le plus fort = 1 alors nombre ngatif !! si le bit le plus fort = 0 alors nombre positif Les autres bits codent la valeur absolue du nombre
!!
!!
!!
Etendu de codage :
!!
Avec n bits, on code tous les nombres entre -(2n-1-1) et (2n-1-1) Avec 4 bits : -7 et +7
!!
!!
50
Entiers relatifs
Malheureusement, avec cette reprsentation, une soustraction de deux nombres a-b ne pourra pas se faire par laddition de a et -b. En effet, avec ce codage, -5 serait cod sur 8 bits par 10000101 et si on effectue lopration 9+(-5), on obtient comme rsultat 00001001 + 10000101 = 10001110 soit -14 et non 4 !
51
#!Limitation :
#!deux codages diffrents pour 0 (+0 et -0) #S ! ur 8 bits : +0=0 0 0 0 0 0 0 0(c1) et -0=1 1 1 1 1 1 1 1(c1) #!Multiplication et laddition sont moins videntes.
55
#!Le bit le plus significatif est utilis pour reprsenter le signe du nombre
#! Exemple : -24 en complment 2 sur 8 bits #! 24 est cod par 0 0 0 1 1 0 0 0(2) #! -24 " 1 1 1 0 0 1 1 1(c1) #! donc -24 est cod par 1 1 1 0 1 0 0 0(c2)
58
#! Etendu de codage :
#!Avec n bits, on peut coder de -(2n-1) (2n-1-1) #!Sur 1 octet (8 bits), codage des nombres de -128 127 #!+0 = 00000000 -0=00000000 #!+1 = 00000001 -1=111111111 #! #!+127= 01111111 -128=10000000
59
Code Complment 2 -Exercices#! Coder 100(10) et -100(10) par complment 2 sur 8 bits
100(10) = 01100100(C2) -100(10) = 10011010(C2) #!Dcoder en dcimal 11001001(C2) et 01101101(C2) 11001001(C2) = -55(10) 01101101(C2) = 109(10) #!Calculer : 1-2 en complment 2 sur 8 bits
60
Code Complment 2 -Exercices#! Calculer : 1 2 en complment 2 sur 8 bits 1 = 0000 0001 -2 = 1111 1110 1-2 = 1+(-2) : 0000 0001 + 1111 1110 = 1111 1111 On obtient -1
61
62
!Format virgule flottante (utilis actuellement sur machine ) !dfini par : m.be
$!un signe + ou $!une mantisse m (en virgule fixe) $!un exposant e (un entier relative) $!une base b (2,8,10,16,) $!Exemple : 0,5425 . 10 2(10) ; 10,1 . 2-1(2) ; A0,B4.16-2(16)
63
(10)
64
Codage en Virgule Flottante -Normalisationx = 1,M . 2Eb !Le signe est cod sur 1 bit ayant le poids fort :
! le signe : bit 1 ! Le signe + : bit 0
!Mantisse normalis(M)
!Normalis : virgule est plac aprs le bit 1 ayant le poids fort !M est cod sur q bits !Exemple : 11,01 " 1,101 donc M =101 SM Eb 1bit p bits M q bits
67
E
8 bits
M
23 bits
SM
1bit
E
11 bits 52 bits
68
01000010000011100000000000000000(IEEE 754
SP)
Eb
69
S = 0, donc nombre positif Eb = 129, donc exposant = Eb-127 = 2 1,M = 1,111 + 1,111 . 22(2) = 111,1(2) = 7,5(10)
70
environ 2+128
environ 2+1024
71
Caractres : Alphabtique (A-Z , a-z), numrique (0 ,, 9), ponctuation, spciaux (&, $, %,) etc. Donnes non numrique (addition na pas de sens) Comparaison ou tri " trs utile Codage revient crer une Table de correspondance entre les caractres et des nombres.
72
!!
!! !!
Code (ou Table) ASCII (American Standard Code for Information Interchange)
!!
7 bits pour reprsenter 128 caractres ( 0 127) 48 57 : chiffres dans lordre (0,1,,9) 65 90 : les alphabets majuscules (A,,Z) 97 122 : les alphabets minuscule (a,z)
73
!!
!!
!!
8 bits pour reprsenter 256 caractres ( 0 255) Code les caractres accentus : , ,etc. Compatible avec ASCII
!!
16 bits pour reprsenter 65 536 caractres ( 0 65 535) Compatible avec ASCII Code la plupart des alphabets : Arabe, Chinois, . On en a dfini environ 50 000 caractres pour linstant
!! !! !!
74
75
76
1 229 866 575 ; 1 380 794 708 ; 1 230 067 013 (base 10)
nombres en flottant simple prcision (32 bits) + (1,10011100100011001001111) . 219 ; + (1,10011010100000101010100) . 237 ; + (1,10100010101010101000101) . 219 ;
844 900,9375; 220 391 079 936 ; 857 428,3125 (base 10)
77
Mon fils,
78
Tout commence par dcouper limage en des petits carrs cest en quelque sorte poser une grille (aussi serre que possible) sur limage. Deux nombres seront important pour dcrire cette grille : le nombre de petits carrs en largeur et ce mme nombre en hauteur Plus ces nombres sont levs, plus la surface de chaque petit carr est petite et plus le dessin tram sera proche de loriginale.
79
!!
!!
On obtient donc pour toute limage un quadrillage comme celui montr ci-dessous pour une partie
80
Le nombre de carr sur la largeur Le nombre de carr sur la hauteur Suite de nombres pour coder linformation (Couleur) contenue dans chaque petit carr quon appelle pixel (PICture ELement) :
!! !! !!
Image en noir et blanc " 1 bit pour chaque pixel Image avec 256 couleur " 1 octet (8 bits) pour chaque pixel Image en couleur vrai (True Color : 16 millions de couleurs) " 3 octets (24 bits) pour chaque pixel
!!
81
!!
!!
!!
Infographie est le domaine de linformatique concernant la cration et la manipulation des images numriques. La dfinition : dtermine le nombre de pixel constituant limage. Une image possdant 800 pixels en largeur et 600 pixels en hauteur aura une dfinition note 800x600 pixels. La profondeur ou la dynamique dune image est le nombre de bits utilis pour coder la couleur de chaque pixel. Le poids dune image (exprim en Ko ou en Mo) : est gal son nombre de pixels (dfinition) que multiplie le poids de chacun des pixels (profondeur). 82
Suite de 0 et de 1
83