Partons sur de bonnes bases mathématiques13 minute(s) de lecture

Les mathématiques peuvent paraître être une science abstraite un peu déconnectée de la réalité. Dans cet article on verra que cela n’est pas forcément vrai. Les opérations arithmétiques, les opérations booléennes et la base binaire peuvent être des puissants outils de la domotique. Si ces mots vous ont fait peur voici de quoi, je l’espère, vous réconcilier avec cette science exacte. Ceci n’est pas un cours de math mais plutôt une présentation pour se coucher moins bête ce soir…

Les différentes bases de calculs

Les bases de calculs pour les hommes

Vous ne le savez peut être pas mais quand nous comptons, nous avons pris l’habitude de compter avec en base 10. Cela nous vient du fait que notre calculatrice naturelle (les mains) contient, si tout va bien… dix doigts. Cette manière de compter s’est donc naturellement imposée au fil des années de l’évolution de l’homme.

Contrairement aux idées reçues ce n’est pas la seule base de calcul que nous utilisons.  Nous utilisons également de manière plus ou moins naturelle 2 autres bases: la base 12 et la base 60.

Vous êtes-vous posé la question concernant la douzaine d’œufs, d’escargots ou d’huîtres? Et les soixante secondes qui forment une minute? Est-ce à mettre sur le compte de personnes ayant des doigts surnuméraires? Que nenni!

Vous pouvez également compter en douzaines (base 12) et en soixantaines (base 60) avec vos doigts. C’est très simple.

Pour la base 12 ou base duodécimale : mettez votre main droite la paume ouverte vers vous. En utilisant le pouce comme pointeur, comptez les phalanges des autres doigts: vous en compterez … 12!

Et pour la base 60? C’est aussi simple : il suffit de commencer a compter en douzaines comme vu précédemment et dès que les douze phalanges sont comptabilisées levez un doigt sur la main gauche! En continuant à compter les phalanges de la main droite encore une fois vous terminerez a 24 avec un deuxième doigt levé dans la main gauche. Si vous ne vous trompez pas des que tous les doigts de la main gauche sont levés vous arriverez à… 60!

Les bases de calculs pour les machines

Et les ordinateurs alors? Ce n’est pas un secret que je vais vous dévoiler : les ordinateurs n’ont pas doigts. Par contre ce qu’ils connaissent c’est l’électricité. Ils ne peuvent pas facilement savoir combien d’électricité ils peuvent utiliser mais plutôt de manière plus simple s’il y a du courant ou s’il n’y en a pas. Ces 2 états sont très facilement mesurables par une machine. L’ordinateur peut compter en base 2 (appelé également base binaire). Le 0 correspond à “il n’y a pas de courant” ou bien “interrupteur ouvert” ou bien “faux”et le 1 sera associé à la présence de courant. ou bien à “interrupteur fermé” ou bien “vrai”.

Il reste à faire correspondre un nombre humain en base 10 (on laisse de côté la base 12 et la base 60) avec un nombre informatique en base binaire. Ce n’est pas compliqué courage.

Relation entre la base 10 et la base binaire

En base 10 il existe 10 chiffres: 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9.

En base 10 on peut continuer à compter après 9. On ne parle alors plus de chiffres mais de nombres. Les nombres s’écrivent en utilisant les signes des chiffres disponibles.

ex : En base 10 après le chiffre 9 viennent les nombres 10, 11, 12, 13, 14,…

En base binaire nous venons de voir qu’il existait 2 chiffres 0 et 1. En base binaire le dénombrement suit exactement le même mécanisme que celui utilisé en base 10. Après le chiffre 1 viennent les nombres binaires 10, 11, 100, 101, 110, 111… et ainsi de suite.

Un nombre donné a son écriture en base 10 et une autre en base binaire. Voici les premiers nombres du dénombrement: écrits en base 10 et en base 2:

Base 10 Base 2
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
17 10001
18 10010
19 10011
20 10100
,,, ,,,

 A chaque nombre en base 10 il existe une représentation en base 2 et inversement. Il existe bien sûr des méthodes pour calculer la traduction d’une base dans l’autre mais elles seraient un peu trop long à exposer ici.

Il est important de comprendre qu’une valeur peut être exprimée en différentes bases.  En fonction de la base choisie on l’écrira d’une manière ou d’une autre mais la valeur en tant que telle sera inchangée.  On peut concevoir les bases comme étant des langues étrangères pour décrire les mêmes choses.

Les opérations arithmétiques

Dans notre quotidiens en base 10 nous utilisons les opérations de base : addition, soustraction, multiplication, division. On les représente par les signes +, -, * et /.

Les machines en base 2 utilisent également ces opérations. Les règles  et les mécanismes à utiliser pour effectuer des additions, soustractions , multiplications et des divisions sont identiques en binaire et en base 10.

On aura ainsi de la même manière :

  • 0+0 = 0,
  • 0+1 = 1
  • 1+1 = 0 et je retiens 1…

Pour la multiplication :

  • 0*0 = 0
  • 0*1 = 0
  • 1*0 = 0
  • 1*1 = 1

Voici quelques exemples de calculs pour les 4 opérations.

Les opérations booléennes

En base binaire interviennent également les opérations logiques ou opérations booléennes. Il faut maintenant considérer que 0 = faux et que 1 = vrai et ce n’est pas beaucoup plus compliqué à comprendre.

Les fonctions logiques de base sont :

  • ET, OU, OU Exclusif, NON ET, NON OU et NON
  • AND , OR, XOR, NAND, NOR, NOT

L’opération ET vous la connaissez. Il suffit de se remémorer ses cours d’électricité et de se rappeler ce qui se passe lorsque l’on met 2 interrupteur l’un derrière l’autre suivi d’une ampoule:

  • si les 2 interrupteurs sont ouverts = pas de courant => 0 ET 0 = 0
  • premier interrupteur fermé et deuxième ouvert = pas de courant => 1 ET 0 = 0
  • premier interrupteur ouvert et deuxième fermé = pas de courant => 0 ET 1 = 0
  • les 2 interrupteurs sont ouverts = courant passe => 1 ET 1 = 1

L’opération OU vous la connaissez également. Toujours l’électricité oui… cette fois les 2 interrupteurs sont le parallèle.

  • si les 2 interrupteurs sont ouverts = pas de courant => 0 OU 0 = 0
  • premier interrupteur fermé et deuxième ouvert = courant passe=> 1 OU 0 = 1
  • premier interrupteur ouvert et deuxième fermé = courant passe => 0 OU 1 = 1
  • les 2 interrupteurs sont ouverts = courant passe => 1 OU 1 = 1

L’opération OU Exclusif se comporte comme un OU à cela près que le résultat est VRAI seulement si les 2 opérandes ont des valeurs distinctes.

Quand à l’opération NON il vous suffit de prendre la valeur de l’opérande le résultat sera la valeur opposée. Vrai donne Faux et Faux donne Vrai c’est à dire 1 donne 0 et 0 donne 1.

Au final nous pouvons établir les tables de résultat suivantes:

Le codage de l’information

Maintenant que nous avons vu comment un ordinateur pouvait traiter en théorie une donnée binaire avec les opérations arithmétiques +, -, *et / puis avec les opérations booléennes, il est intéressant de s’intéresser à comment la données informatique est construite pour être traitée et stockée. Passons maintenant au concret.

En informatique le plus petit élément d’information est le chiffre binaire c’est à dire un 1 ou un 0. Ce chiffre est appelé un bit. Le terme est une contraction de Binary Digit. Il représente l’unité binaire de quantité d’information.

Le but du jeu est de construire une table de correspondance entre une suite de bit, une suite de 0 et de 1 et une lettre, une chiffre ou tout autre signe du clavier.

Avec un bit on ne peut pas aller bien loin il n’y a que 2 états. On ne peut code que 2 lettres ou chiffres.

Avec 2 bits on peut obtenir 4 états. C’est mieux! Mais toujours pas suffisant.

Avec 3 bits on obtient 8 états (2*2*2). C’est toujours trop peu

En continuant ainsi on s’est arrêté dans un premier temps à 8 bits :

  • constitué de 8 bits : on parle alors d’un octet ou byte en anglais, les possibilités vont de 00000000 à 11111111 soit 256 possibilités allant de 0 à 255.  C’est assez pour gérer les cas classiques.
  • constitué de 16 bits : on parle alors de mot ou word en anglais, les possibilités vont de 00000000 00000000 à 11111111 11111111 soit 65536 possibilités allant de 0 à 65535.
  • Constitué de 32 bits : on parla alors de double mot ou double word.

En informatique avec un octet on peut coder 256 caractères majuscules et minuscules et chiffres. A chaque valeur d’un octet corresponds un signe du clavier. Tout cela est maintenant normé afin de ne pas réinventer la roue à chaque sortie de nouveaux modèles et afin d’assurer un échange inter ordinateurs minimal. La valeur des chiffres et des lettres en binaire commune à la quasi totalité des ordinateurs est une table de correspondance qui s’appelle la table ASCII (American Standard Code for Information Interchange). Dans cette table de correspondance se trouvent tous les caractères usuels pour écrire en anglais.

Exemple : La lettre A majuscule est associée le code binaire 01000001 qui se lit en base décimale 65.

Si l’on écrit un texte chaque lettre est stockée dans un octet. 2 lettre occuperont donc 2 octets. et ainsi de suite.  Pour stocker cette information on fera appel à des supports de stockage dont la capacité sera exprimée en octets ou Bytes.  Les supports de nos jours peuvent stocker une quantité de données conséquente.  On parlera alors de ko (kilo octet), Mo (méga octet), Go (giga octet), To (téra octet)…

Une petite dernière base

Comme écrire en binaire peut être un peu consommateur de temps et source d’erreurs pour une humain qui conçoit des machines ou des programmes, il  a été rapidement adopté l’utilisation de la base hexadécimale ou base 16.

Si l’on prends un octet par exemple 01010101. et que l’on le divise en 2 fois 4 bits on obtient 0101 0101. Chaque mot de 4 bits peut être décrit par un chiffre unique en base 16.

Pour la représentation des chiffres en base hexadécimale on utilisera les 10 symboles de la base 10 complétés par des lettres : A, B, C, D, E et F.

Voici la table de correspondance entre les différentes bases:

Base 10 Base 2 Base 16
0 0 0
1 1 1
2 10 2
3 11 3
4 100 4
5 101 5
6 110 6
7 111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
16 10000 10
17 10001 11
18 10010 12
19 10011 13
20 10100 14

Si l’on reprends l’exemple précédent 01010101 en binaire qui corresponds à 85 en décimal s’écrira 55 en hexadécimal.

On peut facilement passer de la base binaire à la base hexadécimale en décomposant le code binaire en bloc de 4 en partant de la droite et en restituant sa valeur hexadécimale à chacun de ces blocs.

Les nombres écrits dans cette base sont plus “manipulables” (car d’écriture plus courte) par l’intellect humain.

Représentation des entiers négatifs

Pour compléter la représentation des entiers, il faut pouvoir écrire des entiers négatifs. La façon informatique de le faire est prévoir un bit de signe, placé en tête. Un bit de signe à 0 indique une valeur positive, un bit de signe positionné à 1 indique une valeur négative.

Les informaticiens utilisent deux représentations.

Complément à un

Ce codage, fort simple, consiste à partir du nombre positif puis à inverser la valeur de chaque bit composant sa valeur binaire.

Par exemple, pour obtenir -7 :

  • 0111 valeur décimale 7
  • 1000 complément à un

Dans ce système, la valeur 0 a deux représentations : « +0 » et « -0 » (dans notre exemple : 0000 et 1111), ce qui oblige à réaliser 2 tests pour tester la valeur nulle d’un résultat.

Complément à deux

Afin de pallier ce défaut, on a introduit la représentation par complément à deux. Celle-ci consiste à réaliser un complément à un de la valeur, puis d’ajouter 1 au résultat.

Par exemple pour obtenir -7:

  • 0111 codage de 7 en binaire
  • 1000 complément à un
  • 1001 on ajoute 1 : représentation de -7 en complément à deux

Le zéro est représenté seulement par 0000.

Ce codage a l’avantage de ne pas nécessiter de différenciation spéciale des nombres positifs et négatifs, et évite en particulier le problème de certains ordinateurs qui avaient un « +0 » et un « -0 » dont il fallait faire comprendre aux circuits de tests que c’était le même nombre !

Voici une addition de -7 et +9 réalisée en complément à deux sur 4 bits :

Avec n bits, ce système permet de représenter les nombres entre -2n-1 et 2n-1-1.

Les mathématiques en domotique

En domotique les mathématiques sont mises à contribution.  Ce domaine traite des nombres depuis leur relevé, leur transmission jusqu’à leur traitement en les comparant avec des seuils de déclenchement ou des valeurs cibles…  La domotique automatise également des tâches les conditions ET, OU, et les autres sont plus que utilisées.

Pour la transmission d’états ou leur stockage, le codage binaire a également son importance.

Prenez par exemple 3 interrupteurs. si l’on considère que lorsqu’il laisse passé le courant son état est 1 et s’il coupe le courant son état est noté 0.  Pour stocker leur état on peut faire appel à 3 variables distinctes I1, I2 et I3.  Cela oblige à en avoir 3 et à les consulter l’une après l’autre.

On peut également n’utiliser qu’une variable binaire I de 3 bits.  L’état de chaque interrupteur sera alors stocké dans un bit bien précis.  Si la variable I vaut 001 cela veut dire que seul l’interrupteur 1 est ON.  Si elle vaut tout d’un coup 101 c’est que l’interrupteur 3 a été positionné sur ON à son tour. La tableau ci dessous montre les différents états possibles.

Pour lire les états c’est très simple il suffit d’utiliser ce que l’on vient d’apprendre : la fonction ET. Si l’on souhaite connaître l’état de l’interrupteur 2 il suffit de comparer la variable I avec le nombre 010 (2ème interrupteur est ON les autres sont OFF). La formule (I ET 010) le donnant comme résultat 010 nous indiquera de manière infaillible que l’interrupteur 2 est ON

Si  I ET 010 = 010 alors l’interrupteur 2 est ON sinon le résultat vaudra 000 ce qui indiquera qu’il est OFF.

Pour modifier l’état de l’interrupteur 2 il suffira d’utiliser l’opération OU et la valeur 010 pour le forcer à ON

Ou bien utiliser l’opération ET et la valeur 101 (résultat de 111 – 10 =101) pour forcer à OFF.

Conclusion

Ces quelques notions de bases seront utiles si vous souhaitez créer des scripts en domotique.  En effet, les états des actionneurs par exemple peuvent être stockés en avec un 1 pour ON et un 0 pour OFF.  En fonction des systèmes, ces informations peuvent être rendues disponibles sous leur forme binaire ou hexadécimale ou décimale.

Cette présentation vous aura permis de savoir plusieurs choses:

  • une donnée peut être exprimée en différentes bases sa valeur est la même mais son écriture diffère d’une base à l’autre.  C’est comme si un objet était nommé en différentes langues : ça ne s’écrit ni ne se prononce pareil, mais il s’agit bien du même objet.
  • une donnée exprimée dans une base donnée sera toujours convertie dans un ordinateur en base binaire pour y être interprétée, traitée et stocké.

La logique binaire peut tout à fait être utilise pour modéliser des installations domotiques en transposant cette manière de penser.

Un exemple de transposition peut être :

Communication = Émetteur ET Récepteur

Communication est « VRAI » si Émetteur actif ET Récepteur actif (c’est une fonction logique dépendant des variables Émetteur et Récepteur)

Un autre utilisation très répandue des mathématiques est de stocker des états de modules domotiques similaires dans un nombre binaire.  L’utilisation des fonctions booléennes permet de les modifier ou de les lire.

Source: wikipedia

3 Comments

  1. Nicolas said:

    Aouch que ça fait du bien de reprendre les bases parfois !!

    surtout quand c’est bien expliqué !!

    merci

    10 novembre 2011
    Reply
  2. perrier thierry said:

    encore merci pour ces données tres interessantes

    30 octobre 2012
    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain: * Time limit is exhausted. Please reload CAPTCHA.