• Aucun résultat trouvé

Les systèmes de numération, calculs et algèbre de Boole

N/A
N/A
Protected

Academic year: 2022

Partager "Les systèmes de numération, calculs et algèbre de Boole"

Copied!
22
0
0

Texte intégral

(1)

Les systèmes de numération, calculs et algèbre de Boole

CRDL – Rossi Yannick Informatique

15.12.2021

(2)

Table des matières

Résumé...3

Introduction...4

Les différents systèmes de numération ...5

Décimal...5

Binaire ...5

Octal ...6

Hexadécimal ...7

Notations, calculs et conversions ...8

Notations...8

Calculs de bases...8

Conversions ...11

Codage des nombres entiers...13

Algèbre de Boole ...15

Analogie aux signaux et rapports cycliques PWM...18

Conclusion ...19

Bibliographie / Sources...20

Annexes...21

(3)

Résumé

Dans le cadre de ce cours, il est intéressant de comprendre comment fonctionne les différentes bases chiffrées, c’est-à-dire la base décimale comme on la connait bien, mais également les bases de deux/binaire, octal ou encore hexadécimal. Les calculs dans ces différentes bases font partie intégrante de ce cours au même titre que la compréhension du codage des nombres entiers. Une courte analogie aux signaux et aux rapports cycliques PWM sera le dernier thème abordé dans ce rapport afin de conclure sur un chapitre plus concret.

(4)

Introduction

Pour comprendre comment fonctionne un ordinateur et surtout comprendre les bases de l’informatique, il est nécessaire d’apprendre à travailler dans plusieurs systèmes de numération. Au- delà de ça, les conversions, les notations et les calculs dans les différents systèmes sont primordiaux pour la suite. L’algèbre de Boole vous permettra finalement de comprendre certaines logiques qui pourront vous êtes présentées par la suite. Enfin, pour ne pas traiter uniquement d’aspects théoriques, l’analogie avec les signaux permettra de faire un lien avec les sujets de la pratique.

(5)

Les différents systèmes de numération

Décimal

Dans la vie de tous les jours, nous utilisons très couramment les chiffres et les mathématiques. Pour que tout le monde puisse comprendre et communiquer en mathématique, il est nécessaire d’utiliser la même base de chiffre, c’est-à-dire s’accorder sur le fait que si l’on note « 3 », tout le monde comprendre bien 3 et pas autre chose.

C’est la raison pourquoi nous utilisons quotidiennement la base 10 ou base décimale lorsque l’on utilise des chiffres. Qu’est-ce que cela signifie ?

Nous utilisons 10 chiffres pour définir l’intégralité des nombres réels, soit 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

Sans se poser de questions, si je note 1456, vous allez tous comprendre ce que cela signifie, le nombre mille-quatre-cent-cinquante-six. Il s’agit fondamentalement d’une somme explicitement nommée :

𝟏 ∗ 𝟏𝟎𝟑+𝟒 ∗ 𝟏𝟎𝟐+𝟓 ∗ 𝟏𝟎𝟏+𝟔 ∗ 𝟏𝟎𝟎=𝟏𝟒𝟓𝟔

Nous multiplions chaque chiffre par 10 à la puissance définie par son positionnement (unité, dizaine, centaine, millier…)

Binaire

Au même titre que la base décimale, la base binaire est fréquemment utilisée, mais pas dans les mêmes domaines. Le langage binaire n’est pas spécialement utilisé dans la vie courante, mais universellement utilisée en informatique et en traitement du signal.

En suivant la théorie de la base décimale à 10 chiffres, nous avons ici uniquement 2 chiffres existants, 0 et 1. Nous allons donc retrouver généralement des nombres ressemblant à cela : 1011

Nous sommes en base 2 ou binaire, comment cela se traduit-il dans notre langage courant :

𝟏 ∗ 𝟐𝟑+𝟎 ∗ 𝟐𝟐+𝟏 ∗ 𝟐𝟏+𝟏 ∗ 𝟐𝟎=𝟖+𝟎+𝟐+𝟏=𝟏𝟏

Nous multiplions cette fois-ci chaque chiffre par 2 à la puissance définie également par son positionnement (unité, dizaine, centaine, millier…)

(6)

Table de base en binaire pour 4 bits

Binaire Décimal

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 10

1011 11

1100 12

1101 13

1110 14

1111 15

Quelques règles en binaire

1. Lorsque l’on divise, il n’existe pas de nombre à virgule, mais un reste (Modulo). Par exemple 8/16 = 0R8 (0 reste 8) et pas 0,5.

2. Les 0 tout à gauche n’ont pas besoin d’être notés, par exemple 0100 = 100 .

Octal

Nous sommes cette fois-ci sur une base 8 ou octale, nous avons donc 8 chiffres pour exprimé tout ce que l’on souhaite : 0, 1, 2, 3, 4, 5, 6 et 7.

Il est important de comprendre que certains chiffres vont s’écrire comme dans la base décimale, c’est notamment le cas pour 124 par exemple qui ne signifie pas 124 en langage décimal. Nous verrons par la suite comment notifier dans quelle base nous travaillons pour éviter des erreurs de compréhension.

Reprenons notre 124 en langage octal et développons notre équation comme dans les bases précédentes :

𝟏 ∗ 𝟖𝟐+𝟐 ∗ 𝟖𝟏+𝟒 ∗ 𝟖𝟎=𝟔𝟒+𝟏𝟔+𝟒=𝟖𝟒

(7)

Hexadécimal

Finalement, la dernière base que nous allons aborder ici est la base 16 ou hexadécimale. Nous travaillons alors avec 16 valeurs possibles : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Il est possible de voir les valeurs de A-F comme des valeurs de 10-15 A = 10

B = 11 C = 12 D = 13 E = 14 F = 15

Comment dans la base 8, nous pouvons nous retrouver avec des nombres ambigus comme 124 qui ne signifie pas la même valeur en hexadécimal qu’en décimal ou en octal. Là encore, il sera important de comprendre comment indiquer clairement dans quelle base ou système nous travaillons.

Prenons 2 exemples pour bien comprendre comment interpréter un nombre en hexadécimal. Le premier est donc 124 et le second 12FA.

Pour 124, hexadécimal:

𝟏 ∗ 𝟏𝟔𝟐+𝟐 ∗ 𝟏𝟔𝟏+𝟒 ∗ 𝟏𝟔𝟎=𝟐𝟓𝟔+𝟑𝟐+𝟒=𝟐𝟗𝟐

Pour 12FA, hexadécimal:

𝟏 ∗ 𝟏𝟔𝟑+𝟐 ∗ 𝟏𝟔𝟐+𝑭 ∗ 𝟏𝟔𝟏+𝑨 ∗ 𝟏𝟔𝟎=𝟏 ∗ 𝟏𝟔𝟑+𝟐 ∗ 𝟏𝟔𝟐+𝟏𝟓 ∗ 𝟏𝟔𝟏+𝟏𝟎 ∗ 𝟏𝟔𝟎

=𝟒𝟎𝟗𝟔+𝟓𝟏𝟐+𝟐𝟒𝟎+𝟏𝟎=𝟒𝟖𝟓𝟖

(8)

Notations, calculs et conversions

Notations

Nous venons de voir qu’il est possible d’écrire des nombres dans différents systèmes. Il est maintenant important de savoir comment indiquer le système dans lequel nous travaillons afin de ne pas avoir d’ambiguïté. La notation est assez simple et se présente comme suit :

(110101)2 (124)8 (124)10

(124)16

En réalité, il suffit d’indiquer le système à l’aide de son chiffre en tant qu’indice. Pour le binaire, nous utiliserons donc l’indice 2, pour l’octal le 8, pour l’hexadécimal le 16 et enfin pour le décimal le 10.

Calculs de bases

Dans ce chapitre, nous allons apprendre à additionner au sein d’un système. Commençons par revoir comment se passe l’addition dans le système décimal.

Prenons : 17 + 4 = 21

Évidemment, on peut le faire de tête, mais initialement, nous avons appris comme cela :

Pour le système hexadécimal ou octal, c’est exactement pareil, voici un exemple en hexadécimal :

(9)

La somme de 3 + A = 13 = D, on ne retient rien, ensuite, 6 + F = 21 = 16 (la retenue donc) + 5 et enfin, 1 + 1 + 1 = 3 ce qui donne finalement 35D en hexadécimal.

Pour le système binaire, on va utiliser le même principe, la disposition n’est pas indispensable, mais peut aider à commencer avec ces calculs.

Prenons l’exemple suivant :

La différence vient finalement du fait que l’on insère une retenue (en rouge) dans la colonne juste à gauche dès que la somme de la colonne atteint la valeur de 2 ou 3 (1+1). Dans le cas ci-dessus, on procède comme suit : 1 + 0 = 1  1 + 1 = 0 et on retient 1  1 + 1 = 0 et on retient 1  1 + 1 = 0 et on retient 1  1 + 1 + 1 = 1 et on retient 1  finalement, il nous reste encore 1 à ajouter à gauche.

Comme le binaire est le système le plus utilisé en informatique, nous allons également apprendre à soustraire 2 nombres, multiplier 2 nombres ou encore diviser 2 nombres.

La soustraction s’effectue comme suit (2 exemples) :

Finalement, chaque fois que l’on soustrait une ligne à l’autre et que l’on obtient -1 ou -2, il faut emprunter 2, lorsque l’on emprunte 2, il faut ajouter une retenue à la colonne à gauche qui sera également soustraite par la suite.

(10)

Examinons maintenant le premier calcul. On commence à droite avec 0 – 1 = -1, il faut donc emprunter 2 pour revenir en positif. Du fait que l’on emprunte 2, on doit ajouter une retenue à la colonne juste à gauche, le 1 en bleu. Maintenant, 2 – 1 = 1 dans la première colonne. On est bon, passons à la seconde colonne, 1 – 1 (la retenue) = 0, puis 1 – 1 = 0 puis 0 – 0 = 0 puis 1 – 0 = 1.

Dans le second calcul, nous procédons pareil à la différence qu’il faut emprunter 2 fois et donc nous avons 2 retenues.

La multiplication s’effectue comme suit : (A = 100101 et B = 101101)

Il est important de commencer par faire un tableau comme ci-dessus, ce qu’on va faire c’est inscrire A à la verticale en partant du bas et ensuite on rentre B de la façon dont il est multiplié par A, comme on peut le voir en verre en prenant soin de décaler de 1 case vers la gauche à chaque fois. La dernière étape consiste à trouver les différents « S » en additionnant les 2 lignes au-dessus comme nous l’avons appris précédemment.

Finalement, la division s’effectue comme suit : (A = 11011 et B = 101)

(11)

Avant tout, il est nécessaire ici aussi de faire un tableau comme ci-dessus en indiquant les 2 nombres à diviser sur la première ligne. Ensuite, il faut reporter le dénominateur en dessous du numérateur si celui-ci est plus petit et indiquer un 1 tout à gauche, ce 1 est donc la première valeur du résultat.

Effectuer ensuite la soustraction comme vous savez le faire . Ici, cela nous donne 001, auquel nous allons abaisser le 1 du numérateur pour obtenir 0011. 101 est plus grande que 0011 donc on doit ajouter un 0 à gauche qui correspond à notre deuxième valeur dans le résultat. On reporte le chiffre en abaissant le dernier 1 du numérateur pour obtenir 00111 auquel on va soustraire 101 et donc générer un 1 à gauche qui est notre troisième valeur dans le résultat. Nous obtenons donc 010 qui est inférieur à 101, cela signifie que c’est notre reste. Le résultat est finalement 101 avec un reste de 010

Conversions

Dans ce chapitre, nous allons apprendre comment passer d’un système à l’autre. De manière générale, il existe plusieurs conversions possibles, mais nous allons nous focaliser sur celles qui peuvent être plus fréquemment utilisées uniquement. De plus, nous avons déjà traité de la conversion des différents systèmes dans la base décimale au début de ce cours. Nous traiterons donc des conversions suivantes :

 Binaire  Octal

 Octal  Binaire

 Binaire  Hexadécimal

 Hexadécimal  Binaire

Pour passer du système octal à hexadécimal et inversement, il est judicieux de passer par le système binaire.

Binaire  Octal

Il s’agit d’une transformation de base relativement simple, car il suffit de décomposer le nombre binaire en plusieurs nombres de 3 bits et de convertir ses nombres individuellement :

(111010101)2= (111/010/101)2= (725)8

(12)

Si les paquets ne sont pas complets, c’est-à-dire si le nombre binaire n’est pas un multiple de 3, il faut rajouter des zéros à gauche pour compléter le paquet.

Octal  Binaire

Il s’agit finalement de la transformation inverse ayant pour but de convertir chaque chiffre du nombre du système octal en 3 bits.

(436)8= (100/011/110)2= (100011110)2

Binaire  hexadécimal

Comme nous venons de le faire avec la conversion de binaire à octal sur 3 bits, nous allons faire pareil, mais avec 4 bits pour le système hexadécimal :

(111101010111)2= (1111/0101/0111)2= (𝐹57)16

Si les paquets ne sont pas complets, c’est-à-dire si le nombre binaire n’est pas un multiple de 4, il faut rajouter des zéros à gauche pour compléter le paquet.

Hexadécimal  Binaire

Pour cette dernière transformation, nous allons procéder de la même manière, mais dans le sens inverse :

(𝐷5𝐴2)16= (1101/0101/1010/0010)2= (1101010110100010)2

(13)

Codage des nombres entiers

Le codage des nombres positifs est une procédure que vous connaissez déjà, car finalement, il s’agit simplement de convertir un nombre décimal en binaire. Maintenant, si ce nombre est négatif, nous pouvons également l’exprimer dans le système binaire.

Coder un entier positif

1. Choisir la longueur n (bits) 2. Coder la valeur sur n bits

Exemple :

1. 96 va nécessiter 8 bits, car généralement, on code sur des multiples de 4 et 4 bits permettent uniquement d’aller de 0 à 15. Avec 8 bits, il est possible de coder de -128 à 127 soit 2 à la puissance 8 possibilités (256).

2.

(96)10= (01100000)2

Coder un entier négatif

1. Choisir la longueur n (bits) 2. Coder la valeur sur n bits 3. Inverser tous les bits 4. Ajouter 1 codé sur n bits

Exemple :

1. -96 va nécessiter 8 bits, car généralement, on code sur des multiples de 4 et 4 bits

permettent uniquement d’aller de 0 à 15. Avec 8 bits, il est possible de coder de -128 à 127 soit 2 à la puissance 8 possibilités (256).

2. On code sur n bits :

(96)10= (01100000)2

3. On inverse tous les bits :

(10011111)2 4. On ajoute 1 codé sur 8 bits

(14)

(10100000)2 = = (―96)10

Contrôle

Pour contrôler, il suffit d’additionner 96 et -96 et le résultat doit bien évidemment être 0.

Nous n’allons pas traiter du carry bit dans ce cours, mais il s’agit d’une retenue indiquant qu’un emprunt arithmétique a été généré. Il peut être utile dans certains cas et certains processeurs l’utilisent, mais nous n’allons pas rentrer dans les détails.

Négatif  Positif

Pour passer d’un nombre négatif en binaire, il existe de technique :

1. Soustraire 1 codé sur n bits puis inverser tous les bits 2. Inverser tous les bits puis ajouter 1 codé sur n bits

Finalement, il s’agit de procédures très similaires au codage d’un nombre négatif.

(15)

Algèbre de Boole

L’algèbre de Boole ou calcul booléen est un procéder logique permettant d’exécuter des opérations grâce à des opérateurs, des variables et des fonctions. Dans l’algèbre de Boole, il existe que 2 états logiques possibles : vrai ou faux.

L’état symbolique « VRAI », symbolisé par 1, signifie une variable avec un niveau « HAUT ». Cela signifie que la variable existe.

L’état symbolique « FAUX », symbolisé par 0, signifie l’inverse. Cela signifie que la variable est absente et que le niveau de la variable est « BAS »

Tables de vérité

Les tables de vérité représentent les états de sortie en fonction des états d’entrée selon les différentes lois ou opérateurs. Il s’agit simplement d’introduire ici ces différentes tables qui serviront par la suite en régulation par exemple.

OR :

x y x v y

0 0 0

0 1 1

1 0 1

1 1 1

Représentations : OR, x ˅ y, x + y, x | y, x || y

AND :

x y x ˄ y

0 0 0

0 1 0

1 0 0

1 1 1

Représentations : AND, x ˄ y, x * y, x & y, x && y

NOT (Inverseur) :

x ¬y

(16)

1 0

Représentations : NOT, ¬x, 𝑥, !x, ~x

XOR :

x y x y

0 0 0

0 1 1

1 0 1

1 1 0

Représentations : EXOR, x ⊕ y

EXNOR :

x y 𝐱 ⊕ 𝐲

0 0 1

0 1 0

1 0 0

1 1 1

Représentations : EXNOR, x ⊕ y

NAND :

x y 𝐱 ˄ 𝐲

0 0 1

0 1 1

1 0 1

1 1 0

Représentations : NAND, x ˄ y, !(x & y), ¬(x * y), /(x * y)

NOR :

x y 𝐱 ˅ 𝐲

0 0 1

0 1 0

1 0 0

1 1 0

(17)

Propriétés Commutativité :

X ^ Y = Y ^ X X v Y = Y v X

Associativité :

X ^ (Y ^ Z) = (Y ^ X) ^ Z X v (Y v Z) = (Y v X) v Z

Distributivité :

X ^ (Y v Z) = (X ^ Y) v (X ^ Z) X v (Y ^ Z) = (X v Y) ^ (X v Z)

Idempotence :

A ^ A = A A v A = A

Priorité :

NOT puis AND puis OR

Loi de De Morgan

Si on doit mettre des termes à la loi de De Morgan, elle s’énonce comme suit : La négation de la disjonction de deux termes est équivalente à la conjonction des négations des deux termes. Pour vulgariser cela, on entend que (X OU Y) inversé est égale à (X inversé) ET (Y inversé).

Cela signifie donc que :

(x ˄ y) =(𝑥)˅(𝑦) (x ˅ y) =(𝑥)˄(𝑦)

(18)

On peut donc dire que cela consiste à changer le signe lorsque l’on rompt la jonction.

(19)

Analogie aux signaux et rapports cycliques PWM

Dans les domaines techniques actuels, nous travaillons sans cesse avec des signaux en tous genres. Il est également très courant de commander différents actuateurs progressivement avec des rapports cycliques, également appelés signaux PWM. Voyons à quoi cela ressemble :

On peut voir dans le signal ci-dessus que l’on a 2 valeurs. Soit la tension est à 0V, soit elle est à 12V. Il s’agit finalement de deux états qui peuvent être représentés grâce à un système binaire. Lorsque le bit est à 1, nous sommes à 12V, lorsque le bit est à 0, nous avons 0V par exemple. Plus la partie à 12V est élevée ou longue, plus l’actuateur est actionné longtemps et par exemple, dans le cas d’un moteur électrique, plus il va tourner vite.

On retrouve également les bits dans des signaux CAN bus et LIN sur les véhicules automobiles, dans la transmission de données…

(20)

Conclusion

Finalement, ce cours traite de divers sujets de bases en informatique. Les systèmes de numération, l’algèbre de Boole ou encore une analogie aux signaux sont les thèmes qui te permettront de poursuivre ta formation en informatique et acquérir de solides compétences. Comprendre comment fonctionne le système binaire est le point le plus important de ce cours, des bits, des 1 et 0 qui représentent différents états ou encore des calculs binaires. N’hésite pas à reprendre certaines parties incomprises.

(21)

Bibliographie / Sources

 Algèbre de Boole - Wikipedia

 Ebook : Comprendre la mécanique – Rossi Yannick

(22)

Annexes

-

Références

Documents relatifs

 A partir des propriétés de l'algèbre de Boole, transformer la fonction pour la simplifier. 

z Le OU est un opérateur binaire ( deux variables) , à pour rôle de réaliser la somme logique entre deux variables logiques.. z Le OU fait la disjonction entre

 Le OU est un opérateur binaire ( deux variables) , à pour rôle de réaliser la somme logique entre deux variables logiques..  Le OU fait la disjonction entre

Il existe des fonctions combinatoires plus complexes que les opérateurs logiques vus jusqu’à maintenant qui sont régulièrement utilisés dans les systèmes

Comme on a mis en évidence une contradiction, c’est à dire une relation S à la fois vraie et fausse, on sait grâce à la proposition ci-dessus qu’il en est de même de toute

Les chronogrammes sont une représentation graphique de l'évolution de l'état de variables d'entrées et de sorties, mais également les variables « internes » d'un

George Boole (mathématicien anglais, 1815-1864) découvre un espace dans lequel certains axiomes sont vérifiés, il démontre un certain nombre de théorèmes pouvant s'appliquer dans

• L'algèbre de Boole : utilise plusieurs opérateurs que l'on nomme opérateurs booléens, opérateurs logiques, ou encore fonctions logiques ou portes logiques (terme plus propre à