Table des Matières La logique... 2 La numération... 3 Introduction... 3 Les opérateurs de base... 3 Le Codage... 5 Définition de la numération... 5 Codage binaire... 5 Codage octal... 7 Codage hexadécimal... 7 Codage BCD... 8 Codage complément à 2... 8 Les différents types de données élémentaires... 10 La notion de logique combinatoire et séquentielle... 11 Combinatoire... 11 Séquentielle... 11
La logique
La numération Algèbre binaire ou algèbre de Boole de David DUBOIS Introduction C est un anglais, George BOOLE, qui le premier au XIX ème siècle, a étudié les propriété de cet algèbre. On l appelle donc communément algèbre de Boole. Définitions : La fonction binaire est une application qui, à un mot binaire d entrée X = x n-1...x 0 associe une variable binaire y Un fonction binaire est dite combinatoire si pour une des combinaisons d entrées correspond un seul état de la sortie. Dans ce cas la fonction est indépendante du temps. Un système logique combinatoire est un système qui possède plusieurs fonctions combinatoires. A partir d un mot binaire d entrée X = x n-1...x 0, ce système permet d élaborer plusieurs variables de sortie : Y= y m-1...x 0 Exemple : soient A et B deux nombres décimaux compris entre 0 et 3. A et B sont codés en binaire naturel. Un système logique combinatoire doit réaliser le calcul du code binaire de la somme A + B à Ce système logique combinatoire comporte : 4 variables d entrées : a 1 et a 0 correspondant au code binaire naturel de A b 1 et b 0 correspondant au code binaire naturel de B 3 variables de sorties : s 2, s 1 et s 0 correspondant au codage de (A+B) 2 car la somme décimale est comprise entre 0 et 6 d où un codage sur 3 bits Les variables de sortie sont des fonctions logiques combinatoires des variables d entrée. Ce système combinatoire s appelle un additionneur. Pour le concevoir, il existe des opérateurs et une algèbre qui permettent de décrire des équations binaires (ou équations logiques). Les opérateurs de base Il existe 3 opérateurs de base définis sur l ensemble binaire S = {0,1} : L opérateur OU, représenté par le signe + : Opération logique de somme L opérateur ET, représenté par le signe. : Opération logique de produit L opérateur NON, représenté par une barre - : Opération logique de négation ou de complémentation OU ET NON 0 + 0 = 0 0. 0 = 0 0 + 1 = 1 0. 1 = 0 1 + 0 = 1 1. 0 = 0 1 + 1 = 1 1. 1 = 1 Définitions : la somme logique de a et b, noté a + b, réalise le OU entre deux variables logiques (a + b se lit " a ou b "). On parle aussi d union logique. le produit logique de a et b, noté a. b (qu on note aussi ab), réalise le ET entre deux variables logiques (a. b se lit " a et b "). On parle aussi d intersection logique.
le complémentaire de a, noté, réalise le NON de cette variable logique se lit " a barre " ou " non a " ) Les propriétés de base de l algèbre binaire Règles Fonction OU Fonction ET Commutativité a + b = b + a a. b = b. a Associativité a + ( b + c ) = ( a + b ) + c a. ( b. c ) = ( a. b ). c Distributivité OU par rapport à ET : a + ( b. c ) = ( a + b ). ( a + c ) Élément neutre a + 0 = a a. 1 = a Complémentaire Forçage (absorbant) a + 1 = 1 a. 0 = 0 Règles de base Règles Fonction OU Fonction ET Involution Idempotence a + a = a a. a = a Absorption 1 Absorption 2 Consensus ET par rapport à OU : a. ( b + c ) = ( a. b ) + ( a. c ) De Morgan Autres règles de l algèbre binaire Règle du complément : Soit l expression logique F. L expression, complémentaire de F, s obtient en permutant dans F les opérations OU en ET & ET en OU en en remplaçant chaque variable par son complément, sans oublier de placer ou de supprimer les parenthèses afin de maintenir la règle de hiérarchie des opérateurs Exemple : =
Le Codage Définition de la numération La numération permet de représenter un nombre par la juxtaposition ordonnée de symboles pris parmi un ensemble. Les systèmes de numération les plus courants sont : o Le système décimal : il comprend 10 symboles appelés chiffres : {0,1,2,3,4,5,6,7,8,9} o Le système binaire : il comprend 2 symboles appelés BIT (Binary digit) : 0 et 1 o Le système octal : il utilise 8 symboles qui sont les chiffres de 0 à 7, o Le système hexadécimal : il utilise 16 symboles: les chiffres de 0 à 9 et les lettres A, B, C, D, E, F le nombre de symboles utilisés est appelé Base Lorsqu un nombre est écrit, la position respective des symboles détermine leurs poids. Le système décimal, appelé aussi système à base 10, est dit à poids positionnels : c est à dire que la valeur d un chiffre dépend de sa position, appelée rang, dans le nombre :, centaines, dizaines, unités, dixièmes, centièmes, Exemple : 742,59 = 7 100 + 4 10 + 2 1 + 5 0,1 + 9 0,01 742,59 = 7 10 2 + 4 10 1 + 2 10 0 + 5 10-1 + 9 10-2 7 représente le chiffre de poids fort, 9 est le chiffre de poids faible Les poids des rangs sont des puissances de 10 A partir d'ici et jusqu'à la fin, je me limite volontairement au codage des nombres entiers. Un nombre décimal est un nombre en base 10. Généralisation : On généralise l écriture d un nombre N de la façon suivante : Soit la Base B possédant B symboles a i alors un nombre N s écrit en juxtaposant les symboles : N = (a n-1 a n-2 a 0 ) B où les a i représentent les symboles de la base B, 0 a i B-1 Ce nombre N a pour valeur décimale : N = a n-1.b n-1 + a n-2.b n-2 + + a 1.B 1 + a 0. B 0 avec 0 N B n -1 - Cette forme est appelée forme polynomiale. - L élément a i est le symbole de rang i et son poids est B i. - a n-1 est le symbole le plus significatif (de poids le plus fort) - a 0 est le symbole le moins significatif (de poids le plus faible) Codage binaire Codage : Le système binaire (ou la numération à base 2) est le système utilisé en électronique numérique et son application aux systèmes informatiques. On dispose de 2 symboles {0,1} appelés bits Lorsqu'on code en binaire, on cherche généralement à utiliser un nombre fixe de bits: format de 4 bits, de 8 bits (octet), de 16 bits, 32, 64 bits... Format de n bits : il permet de représenter tous les nombres entiers N compris entre 0 et 2 n - 1. Ce nombre au format de n bits s'appelle communément mot de n bits Exemple : mot de 4 bits
( 1101 ) 2 = (1 2 3 ) + (1 2 2 ) + (0 2 1 ) + (1 2 0 ) ( 1101 ) 2 = (1 8) + (1 4) + (0 2) +(1 1) = 13 Le nombre binaire 1101 représente le nombre décimal 13 le chiffre 1 à gauche représente le bit de poids fort le chiffre 1 à droite représente le bit de poids faible Les poids des rangs sont des puissances de 2 Le mot de 4 bits est pondéré 8-4-2-1 Comptage binaire : Si on utilise 4 bits (2 4 = 16), on peut compter de 0 à 2 4-1 = 15 Le bit de poids faible (celui de droite) sera pondéré 2 0 = 1 Le bit de poids fort (celui de gauche) sera pondéré 2 3 = 8 Tableau de la suite des nombres binaires Poids: 8 4 2 1 Décimal: a 3 a 2 a 1 a 0 N La série commence avec 4 zéros: 0 0 0 0 0 0 0 0 1 1 On remarque un basculement 0 0 1 0 2 de bit à chaque ligne pour la 0 0 1 1 3 première colonne 0 1 0 0 4 Ce basculement s'effectue par 0 1 0 1 5 paire de bits pour la deuxième 0 1 1 0 6 colonne 0 1 1 1 7 4 bits identiques pour la 3eme 1 0 0 0 8 colonne et 8 bits identiques pour 1 0 0 1 9 la 4eme colonne 1 0 1 0 10 1 0 1 1 11 et ainsi de suite si on continuait 1 1 0 0 12 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15 Conversion d'un nombre décimal en binaire : Méthode par divisions euclidiennes successives: Soit N = a n-1.b n-1 + a n-2.b n-2 + + a 1.B 1 + a 0. B 0 Effectuons la division euclidienne N par 2: a n-1.2 n-1 + a n-2.2 n-2 + + a 1.2 + a 0 = 2 (a n-1.2 n-2 + a n-2.2 n-3 + + a 1 ) + a 0 ( a 0 est le reste) Il suffit de continuer à diviser successivement le quotient par 2 jusqu'à ce qu'il soit égal à 0 a n-1.2 n-2 + a n-2.2 n-3 + + a 1 = 2 (a n-1.2 n-3 + a n-2.2 n-4 + + a 2 ) + a 1 ( a 1 est le reste)... Les restes successifs vont être a 2, a 3... Ils forment alors le mot binaire du poids le plus faible au poids le plus fort. Exemple : convertir le nombre décimal 69 en binaire 69 = 2 34 + 1 (bit de poids faible) 34 = 2 17 + 0 17 = 2 08 + 1 08 = 2 04 + 0 04 = 2 02 + 0 02 = 2 01 + 0 01 = 2 00 + 1 (bit de poids fort) 69 = ( 1000101 ) 2
Codage octal Codage : La numération octale (à base 8) est utilisée par les informaticiens. On dispose de 8 symboles qui ne sont autres que les chiffres de 0 à 7. Si on code sur n chiffres, on peut représenter tous les nombres entiers décimaux compris entre 0 et 8 n -1. Exemple : mot octal de 3 chiffres (il sera pondéré 8 2-8 1-8 0 soit 64-8-1) ( 721) 8 = (7 8 2 ) + (2 8 1 ) + (1 8 0 ) ( 721) 8 = (7 64) + (2 8) + (1 1) = 465 Le nombre octal 721 représente le nombre décimal 465 Conversion : Comme pour la conversion en binaire, la méthode des divisions euclidiennes successives par 8 peut être utilisée. Exemple : convertir le nombre décimal 99 en octal 99 = 8 12 + 3 (chiffre de poids faible) 12 = 8 01 + 4 01 = 8 00 + 1 (chiffre de poids fort) 99 = ( 143 ) 8 Passage du Binaire en Octal ( Encodage) : Il suffit de faire des regroupements de 3 bits sur le mot binaire. En effet, un mot binaire de 3 bits permet de coder les nombres entiers décimaux compris entre 0 et 7: Exemple : soit le nombre binaire 1110111 Il faut regrouper 3 bits sur ce mot à partir de la droite: 1 110 111 On complète alors par des zéros à gauche pour avoir 3 bits : 001 110 111 Ce qui donne en tenant compte de la pondération 4-2-1 des bits respectifs: 001 = (0 2 2 ) + (0 2 1 ) + (1 2 0 ) = 1 110 = (1 2 2 ) + (1 2 1 ) + (0 2 0 ) = 6 111 = (1 2 2 ) + (1 2 1 ) + (1 2 0 ) = 7 D'où le résultat : ( 1110111 ) 2 = ( 167 ) 8 Codage hexadécimal Codage : La numération hexadécimal (à base 16) est apparue avec la logique programmée. Elle est largement utilisée en programmation. On dispose de 16 symboles: les chiffres de 0 à 9 et les lettres de A à F qui correspondent aux valeurs décimales 10 à 15 Si on code sur n chiffres, on peut représenter tous les nombres entiers décimaux compris entre 0 et 16 n -1. Voici l'équivalence des codages dans les 3 numérations (décimal, hexadécimale et binaire) Décimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hexadécimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Binaire 0000 00010010 0011 0100 0101011001111000100110101011 1100 1101 11101111 Exemple : mot hexadécimal de 4 "chiffres" (il sera pondéré 4096-256-16-1) ( 20AC) 16 = (2 16 3 ) + (0 16 2 ) + (A 16 1 ) + (C 16 0 ) ( 20AC) 16 = (2 4096) + (0 256) + (10 16) + (12 1) = 8364 Le nombre hexadécimal 20AC représente le nombre décimal 8364 Conversion : Comme pour la conversion en binaire, la méthode des divisions euclidiennes successives par 16 est utilisée. Exemple : convertir le nombre décimal 92 en hexadécimal
92 = 16 05 + 12 ( 12: chiffre de poids faible = C) 05 = 16 00 + 5 (chiffre de poids fort) 92 = ( 5C ) 16 Passage du Binaire en hexadécimal ( Encodage) : Comme le montre le tableau précédent, il suffit de faire des regroupements de 4 bits sur le mot binaire. En effet, un mot binaire de 4 bits permet de coder les nombres entiers décimaux compris entre 0 et 15: Exemple : soit le nombre binaire 100111 Il faut regrouper 4 bits sur ce mot à partir de la droite: 10 0111 On complète alors par des zéros à gauche pour avoir 4 bits : 0010 0111 Ce qui donne en tenant compte de la pondération de chaque bit 8-4-2-1: 0010 = 2 0111 = 7 D'où le résultat : ( 100111 ) 2 = ( 27 ) 16 Codage BCD Codage : Le codage BCD code chaque chiffre d'un nombre décimal par son équivalent binaire. Le chiffre le plus grand étant 9, il faut donc 4 bits pour coder chaque chiffre ( le code binaire du chiffre 9 est 1001) Exemple : soit le nombre décimal 137 Il faut donc coder chaque chiffre de ce nombre en utilisant 4 bits: 1 : 0001 3 : 0011 7 : 0111 D'où le résultat : ( 137 ) 10 = ( 0001 0011 0111 ) BCD Ce codage a des applications dans le domaine des composants destinés à l'informatique. Codage complément à 2 Codage : Le codage complément à 2 est le codage des nombres signés (positifs et négatifs), Une convention est adoptée pour représenter le signe du nombre ( + ou - ) : Pour cela, on ajoute un bit supplémentaire au nombre appelé bit de signe. On attribue le bit de signe 0 pour les nombres positifs On attribue le bit de signe 1 pour les nombres négatifs Dans un nombre binaire de n bits, on garde 1 bit de signe et il reste n-1 bits pour coder le nombre décimal Soit N un nombre décimal codé en nombre binaire signé de n bits, alors -2 n-1 N 2 n-1-1 Exemple 1: Si on prend 8 bits pour coder des nombres signés, on garde donc 1 bit pour le signe et par conséquent, on ne pourra coder que les nombres sur 7 bits, c'est à dire coder les nombres N tel que : -2 7 N 2 7-1, soit : -128 N +127 Exemple 2: Si on prend 4 bits pour coder des nombres signés, on garde donc 1 bit pour le signe et par conséquent, on ne pourra coder les nombres sur 3 bits, c'est à dire coder les nombres N tel que : -2 3 N 2 3-1, c'est à dire : -8 N +7 complément à 2 (4 bits) : Décimal 0 +1 +2 +3 +4 +5 +6 +7-8 -7-6 -5-4 -3-2 -1 codage 0000 0001 0010 0011 0100 0101 011001111000100110101011 1100 1101 11101111 Obtention du complémént à 2 :
Pour obtenir le complement à 2 d'un nombre binaire initial, il faut ajouter 1 à son complément à 1 Le complément à 1 d'un nombre binaire est obtenu en changeant chaque 0 par un 1 et chaque 1 par un 0, c'est à dire en complémentant chaque bit du nombre Exemple 1: soit le nombre binaire initial 1011101. Son complément à 1 est : 0100010 Pour obtenir maintenant le complément à 2, il faut ajouter 1 au complément à 1 : 0100010 (complément à 1) 0000001 ( + 1) --------- 0100011 (complément à 2 du nombre binaire initial) Comme le complément à 2 ci-dessus équivaut au nombre +35, le binaire initial était -35 Exemple 2: Le nombre 13 se code en binaire : 1101, le nombre +13 se code donc en binaire signé par : 01101, le complément à 1 de +13 est : 10010, enfin le complément à 2 est obtenu en ajoutant 1 à 10010 : 10011 Le codage de -13 est donc 10011 Astuce 1: Pour coder rapidement les nombres en complément à 2, il suffit de recopier le nombre binaire initial de la droite vers la gauche jusqu'au premier 1 rencontré puis continuer à recopier en complémentant chaque bit Soit le nombre binaire initiale 1001100 Son complément à 2 est : 0110100 (recopie de la droite vers la gauche jusqu'au premier 1 puis on complemente les autres bits) Astuce 2: Si le bit de signe vaut 0, on l'ignore, Si le bit de signe vaut 1, on le pondère de -2 n Soient deux nombre binaires signés suivants : 0110 = (1 2 2 ) + (1 2 1 ) + (0 2 0 ) = 4 + 2 + 0 = 6 = +6 1010 = -(1 2 3 ) + (0 2 2 ) + (1 2 1 ) + (0 2 0 ) = -8 + 0 + 2 + 0 = -6 Ces deux nombres sont bien complément à 2 l'un de l'autre.
Les différents types de données élémentaires Document de : BTS MAI P. RAYMOND mai-04 BOOL 1 bit Booléen 0 à 1, FALSE ou TRUE BYTE 8 bits Octet non signé 0 à 255 WORD 16 Entier de 16 bits non signé 0 à 65535 bits INT 16 Entier de 16 bits signé -32768 à +32767 bits DWORD 32 Entier de 32 bits non signé 0 à 4294967295 bits DINT 32 Entier de 32 bits signé -2147483648 à +2147483647 bits REAL 32 Nombre à virgule flottante IEEE 32 bits -3.402823E+38 à +3.402823E+38 bits STRING Les variables messages contiennent des chaînes de caractères. La capacité d'un message ne peut pas excéder 255 caractères. Les variables messages peuvent contenir tous les (codes de 0 à 255) TIME Les variables temporisations sont stockées sur 32 bits. Leur représentation interne indique un nombre entier de millisecondes. Ces variables prennent des valeurs temporelles, c 23h59m59s999ms, et ne peuvent jamais être néga
La notion de logique combinatoire et séquentielle Combinatoire Les sorties ne dépendent que des combinaisons des variables d'entrées et non de l'histoire de celles-ci. Aucune mémoire des états précédents n'est conservée. Séquentielle Les sorties dépendent des combinaisons d'entrées et de l'histoire de celle ci. Les états précédents des entrées sorties peuvent être mémorisées. Tableau des fonctions mémoire, retard Exemple concret Deux vérins double effets avec distributeurs bistables et détecteurs de position. Liste des entrées: a0,a1,b0,b1, dcy (a0 vérin rentré, a1 sortie, ) Liste des sorties:a+, (Mouvement + sorti de tige) Cycle carré Solution:A+=a0.b1, A traiter. Cycle en L Un traitement combinatoire ne suffit pas. Solution à traiter.