Nous utilisons le système décimal (base 10) dans nos activités quotidiennes. Ce système est basé sur une logique à dix symboles, de 0 à 9, avec une unité supérieure (dizaine, centaine, etc.) à chaque fois que dix unités sont comptabilisées. C'est un système positionnel, c'est-à-dire que l'endroit où se trouve le symbole définit sa valeur. Ainsi, le 2 de 523 n'a pas la même valeur que le 2 de 132. En fait 523 est l'abréviation de 5·100+2·10+3. On peut selon ce principe imaginer une infinité de systèmes numériques fondés sur des bases différentes.
En informatique, outre la base 10, on utilise très fréquemment le système binaire (base 2) puisque la logique booléenne est à la base de l'électronique numérique. Deux symboles suffisent: 0 et 1. Cette unité élémentaire ne pouvant prendre que les valeurs 0 et 1 s'appelle un bit (de l'anglais binary digit). Une suite de huit bits s'appelle un octet.
La conversion du nombre binaire 01001101 en notation décimale peut se faire à l'aide du schéma ci-dessous:
| 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
| 0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 |
Le nombre binaire 01001101 correspond ainsi à 26 + 23 + 22 + 20 = 64 + 8 + 4 + 1 = 77 en notation décimale.
La conversion binaire de l'entier décimal 77 se fait à l'aide d'une suite de divisions euclidiennes par 2. Le résultat correspond alors à la juxtaposition des restes comme le propose le schéma ci-dessous:
Conversion binaire vers décimal
L'entier décimal 77 correspond ainsi à 1001101 en notation binaire.
Rédigez un programme capable de convertir en binaire tout entier positif décimal et en décimal toute chaîne binaire choisis par l'utilisateur. A ce dessein, votre code devra respecter les points suivants:
binToDec(str binaire) --> int permettra de convertir de manière récursive toute chaîne en sa représentation décimale correspondante. Cette représentation sera transmise sous forme d'entier.decToBin(int entier) --> str permettra de convertir de manière récursive tout entier décimal en sa représentation binaire correspondante. Cette représentation sera transmise sous forme de chaîne de caractères.