Professional Documents
Culture Documents
Logique 1
Logique 1
Logique
in
9.
fo
i2
ko
in
9.
combinatoire
fo
i2
ko
.in
29
fo
i
ko
in
9.
i2
ko
Bibliographie :
1 - Systèmes de Numération:
4 bases de numération sont utilisées pour manipuler les nombres dans les systèmes logiques:
binaire, décimal, octal, hexadécimal.
Par exemple, en base décimale, on utilise 10 symboles : { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 }
−1
31,5 s'écrit : 3 x10 + 1 x10 + 5 x10
1 0
1.1.Système binaire:
9.
fo
Système utilisé en électronique.
i2
in
La succession de ces nombres est 0 , 1 , 1O , 11 , 100 , 101 , 110 , 111 , 1000 , 1001 , ...
fo
i2
ko
.in
n
N = ∑ α i 2 i avec α i = 0 ou 1
fo
−m
i
ko
in
Un nombre binaire de n bits permet d’obtenir 2n nombres différents dont le plus grand a pour valeur
décimale 2n - 1.
On appelle ‘octet’( byte en anglais) un nombre de 8 bits ( domaine 0..255)
On appelle ‘mot’(word en anglais) un nombre de 16 bits (domaine 0..65535), les bits 0..7 constituant
l’octet de ‘poids faible’, les bits 8..15 constituant l’octet de ‘poids fort’.
1.2.Système décimal:
1.3.Système octal:
1.4.Système hexadécimal:
Tout écriture de nombre hexadécimal est une composition des symboles précédents.
9.
10 , 11 , 12 , 13 , 13 , 14 , 15 , 16 , 16 , 17 , 18 , 19 , 1A , 1B , 1C , 1D , 1E , 1F , ...
ko
in
n
N = ∑ α i 16 i avec α i = 0 ... F
fo
i2
−m
ko
.in
3 2
ex: AC53 = 10 * 16 + 12 * 16 + 5 * 161 + 3 * 160 = 44115 décimal
29
fo
1.5.Conversions d'une base dans une autre:
i
ko
in
il suffit de diviser le nombre décimal par 2, de conserver le reste, puis on répète l’opération sur
i2
Le nombre binaire s’écrit de la gauche vers la droite en prenant l’ordre inverse des restes successifs
des divisions.
ex : 3786 décimal = 111011001010 binaire
- nombre octal en nombre binaire:
on remplace chaque symbole du nombre octal en son équivalent binaire.
ex : 257 octal = 010 101 111 = 010101111 binaire
- nombre binaire en nombre octal:
Sachant qu’un nombre octal peut s’écrire avec les symboles 0 ... 7 et que 7 = 111 binaire, on sépare
le nombre binaire en blocs de 3 en commençant par la droite, puis on convertit chaque bloc en son
équivalent octal.
ex : 11001101111 = 11 001 101 111 = 3157 octal
- nombre hexadécimal en nombre binaire:
on remplace chaque symbole par son équivalent binaire
ex : ECA = 1110 1100 1010 binaire
Dans un nombre binaire, le bit le plus à droite est le bit de poids faible ( LSB least significant bit) et le
bit le plus à gauche est le bit de poids fort (MSB most significant bit)
Les dispositifs électroniques fonctionnant en mode binaire, on va rappeler ici les principales
opérations sur les nombres binaires.
2.1.Signe:
Ce mode est très peu adapté pour les additions, on préfère utilisé la notion de complément.
ko
in
2.2.Complément:
9.
fo
i2
~
Par définition, le complément vrai N d'un nombre N exprimé à l'aide de n chiffres dans la base
ko
.in
~
b est N = bn − N
29
fo
n bits
i
ko
in
9.
bn b0
n
Comme le '1' de poids b ne rentre pas dans le format défini, il est interprété comme le nombre 0 par
~
le calculateur ⇒ N = 0 − N = ( − N )
~
Dans le cas du système binaire, on a : N = 2 − N = ( 2 − 1) − N + 1
n n
Le nombre (2n - 1) étant le plus grand nombre que l'on puisse écrire, alors
correspondant de N.
Par définition, le complément à 1 d'un élément binaire X est un élément noté X tel que :
- complément à 1:
X +X =1
on remplace 0 par 1, et 1 par 0 sauf le bit de signe.
in
.in
fo
- le nombre 0 n'a qu'une représentation.
i
ko
in
En informatique, on vérifie sur 16 bits que la gamme des entiers signés va de –32768 à +32767 sur
16 bits ( type Integer ) et les entiers non signés de 0 à 65535 (type Word )
2.3.Addition: 0+0=0
algorithme: 0+1=1
1+0=1
1 + 1 = 0 avec un bit de retenue égal à 1 (CF carry flag)
1 + 1 + 1 = 11 = 1 avec un bit de retenue égal à 1
exemple : 101101
+110111
1100100
remarques:
Pour additionner un nombre positif ‘a’et un nombre négatif ‘b’:
- si |a| > |b|
on remplace le nombre négatif ‘b’par son complément à 2
exemple: a = +17 et b = -12
+17 ⇒ 0 1 0 0 0 1
-12 ⇒ 1 0 1 1 0 0 complément à 1 ⇒ 1 1 0 0 1 1 complément à 2 ⇒ 1 1 0 1 0 0
010001
110100
1 000101
fo
in
on additionne
9.
.in
fo
101111
i
in
111011
Alors,on prend le complément à 2 ,ce qui donne 1 0 0 1 0 1 ⇒ -5
9.
i2
2.4.Multiplication:
0 . 0 = 0
algorithme: 0 . 1 = 0
1 . 0 = 0
1 . 1 = 1
exemple:
101101
10011
101101
101101
101101 . . . .
1101010111
remarques:
fo
- si les 2 nombres sont négatifs, on multiplie les compléments à 2.
- si un seul nombre est négatif,
in
fo
on prend le complément à 2 du produit pour obtenir le résultat escompté.
i2
ko
in
2.5.Division:
9.
fo
i2
.in
exemple : a = 54 b = 10
54 ⇒ 1 1 0 1 1 0 10 ⇒ 1 0 1 0 complément à 2 ⇒ 0 1 1 0
29
fo
110110 | 1010
i
0110 | 101
ko
in
100111 |
9.
00000 |
i2
1110 |
ko
0110 |
10100 |
on constate bien que le quotient est 1 0 1 ⇒ 5 et le reste 1 0 0 ⇒ 4
remarques:
- si les nombres sont négatifs, on divise les compléments à 2.
- si un seul nombre est négatif:
on prend son complément à 2,
on effectue la division
on prend le complément à 2 du quotient.
3 - Codes binaires:
La plupart des systèmes électroniques qui traitent numériquement les signaux manipulent les bits
gràce à un code.
le codage est une opération qui établit une correspondance entre les éléments de 2 ensembles.
A un nombre donné correspond une combinaison binaire appelée mot-code.
L'ensemble des mots-code forme le code.
3.1.Codes décimaux:
in
.in
29
Le code Binary Coded Decimal est la traduction en binaire de chaque chiffre du système décimal.
fo
in
Le code Aïken regroupe les 2 précédents : on écrit les codes binaires de 0 à 4 puis
prenons un exemple 2 ⇒ 0010 complément à 9 de 2 ⇒ 7 complément à 1 de 0010 ⇒ 1101
ko
L’utilisation du code binaire vu précédemment ( appelé aussi code binaire naturel) dans le traitement
numérique d’un signal n’est pas sans poser de problèmes.
En effet, supposons un capteur enregistrant les valeurs successives dans un comptage
0000, 0001, 0010, 0011, 0100, 0101,...
On voit que le passage de 1 à 2 nécessite la modification des bits 0 et 1, ce qui peut introduire des
aléas (effets transitoires néfastes).
On risque d’obtenir: 0001 0000 0010 ou 0001 0011 0010
Pour éviter ces erreurs, il suffit de coder chaque nombre de sorte que 2 nombres successifs
ne différent que d'un élément binaire : code à distance unité.
(on appelle distance entre 2 mots-code le nombre d'éléments binaires qui différent )
Le code Gray est le plus utilisé
Avec ce code, le passage d’un nombre au suivant ne nécessite que la modification d’un seul bit
La relation qui lie un nombre binaire pur avec le nombre binaire codé Gray s’écrit:
N ⊕ 2N
Ng =
2
(⊕ = OU exclusif )
En TurboPascal,on écrirait (N XOR N shl 1) shr 1
exemple:
N = 54 décimal ⇒ 1 1 0 1 1 0 binaire pur ⇒ 2N = 1 1 0 1 1 0 0
(obtenu en décalant tous les bits d’une position à gauche et en entrant 0 pour le bit 0)
Le OU exclusif donne 0 si les 2 bits sont identiques.
0110110
1101100
fo
1011010
La division par 2 revient à décaler tous les bits d’une position vers la droite (le bit 0 initial est perdu)
in
On obtient ainsi 1 0 1 1 0 1
9.
Ce code est utilisé par exemple dans un asservissement où la position angulaire d'un axe peut être
fo
i2
codée par un dispositif optique composé d'un disque sur lequel on a gravé un motif.
ko
in
fo
i2
ko
.in
29
fo
i
ko
in
9.
i2
ko
A chaque chiffre d’un nombre décimal, on fait correspondre son équivalent binaire sur 4 bits.
exemple : 2583 décimal ⇒ 0010 0101 1000 0011 en DCB
On remarquera du fait des 9 chiffres décimaux 0..9,les nombres binaires 1010 .... 1111 ne sont pas
utilisés en DCB
Ce code est utilisé dans les calculatrices.
3.5.Code alphanumérique:
Connu sous le nom de code ASCII, il est utilisé dans les ordinateurs pour les communications entre
périphériques:clavier,écran,...
Les caractères de l’alphabet comme les chiffres sont définis chacun sur un octet.
fo
in
9.
fo
i2
ko
in
9.
fo
i2
ko
.in
29
fo
i
ko
in
9.
i2
ko