Introduction
Leçon 18 sur 20 du cours Énigmes mathématiques de Coddy.
Un nombre binaire est un nombre exprimé dans le système de numération à base 2 ou système de numération binaire, une méthode d'expression mathématique qui n'utilise que deux symboles : généralement « 0 » (zéro) et « 1 » (un). [De Wikipédia, l'encyclopédie libre]
Les notations : 110=12, 210=102, 310=112, 410=1002 signifient que les nombres 1, 2, 3 et 4 dans le système de numération décimale (système de numération à base 10) sont égaux à 1, 10, 11 et 100 dans le système de numération binaire.
Compter en binaire est similaire à compter dans n'importe quel autre système de numération. En commençant par un seul chiffre, le comptage progresse à travers chaque symbole, par ordre croissant.
Pour convertir un entier de base 10 en son équivalent de base 2 (binaire), le nombre est divisé par deux. Le reste est le bit le moins significatif (le bit le plus à droite). Le quotient est à nouveau divisé par deux ; son reste devient le bit suivant le moins significatif. Ce processus se répète jusqu'à ce qu'un quotient de un soit atteint. La séquence des restes (incluant le quotient final de un) forme la valeur binaire, car chaque reste doit être soit zéro, soit un lors de la division par deux. Par exemple, 510 est exprimé par 1012, puisque :
cinq divisé par deux donne 2 avec un reste de un : 5:2 = 2(1). Ainsi, le bit le moins significatif est un. Ensuite, 2:2=1(0). Ainsi, le bit suivant le moins significatif est zéro, et le suivant est un.
Défi
FacileÉcrivez une fonction calcBinary qui reçoit un entier en base 10 et retourne son équivalent en nombre binaire, au format chaîne de caractères.
Essayez de le faire sans utiliser de fonctions intégrées
Essayez vous-même
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
char* r = calcBinary(n);
printf("%s\n", r);
return 0;
}