Imprimer le binaire du nombre en C

Muhammad Husnain 12 octobre 2023
  1. Système de numération binaire
  2. Implémentations C pour la conversion
Imprimer le binaire du nombre en C

Ce guide trivial concerne la mise en œuvre d’un convertisseur de système de nombre décimal en binaire à l’aide du langage C. Avant de passer directement à l’implémentation, nous allons d’abord récapituler le système de nombres binaires, puis discuter de plusieurs implémentations C pour convertir une représentation décimale en un équivalent binaire.

Système de numération binaire

Tout système qui fonctionne sur deux états discrets ou catégoriels est appelé système binaire. De même, un système de numération binaire représente les nombres en utilisant seulement deux symboles : 1 (un) et 0 (zéro).

Par conséquent, il est également connu sous le nom de système de base 2.

Actuellement, la plupart des implémentations de circuits logiques à base de transistors utilisent des états binaires discrets. Par conséquent, tous les ordinateurs numériques modernes utilisent des systèmes binaires pour représenter, stocker et traiter les données.

Par exemple, convertir 6 en un système de numération binaire.

$$ (6)_{10} = (110)_2 $$

Ici, 6 est le nombre du système décimal de base 10, et son binaire correspondant est 110, qui est dans le système binaire de base 2. Regardons le processus de cette conversion.

Processus de conversion

Étape 1 : Diviser 6 par 2 pour obtenir la réponse. Vous obtenez le dividende pour l’étape suivante, en utilisant le quotient entier obtenu à cette étape.

Continuez ainsi jusqu’à ce que le quotient atteigne zéro.

Dividende Reste
6/2 = 3 0
3/2 = 1 1
1/2 = 0 1

Étape 2 : Le binaire peut être formé en rassemblant tous les restes dans l’ordre chronologique inverse (de bas en haut).

Avec 1 étant le bit le plus significatif (MSB) et 0 étant le bit le moins significatif (LSB). Par conséquent, le binaire de 6 est 110.

Implémentations C pour la conversion

Il peut y avoir plusieurs façons dans le langage C de convertir un nombre en un système de nombre binaire. Il peut s’agir d’une solution itérative ou récursive.

Cela dépend de votre choix de programmation. Cet article discutera d’une solution récursive car elle est très simple.

Solution 1 :

Si number > 1 :

  1. placez number sur la pile
  2. fonction d’appel avec number/2 de manière récursive
  3. Prenez un number de la pile, divisez-le par deux et sortez le reste.
#include <stdio.h>

void convertToBinary(unsigned a) {
  /* step 1 */
  if (a > 1) convertToBinary(a / 2);

  /* step 2 */
  printf("%d", a % 2);
}
int main() {
  // Write C code here
  printf("Binary of the number is: ");
  convertToBinary(6);
  printf("\n");

  return 0;
}

Cet extrait de code libère la sortie suivante.

Binary of the number is: 110

Solution 2 :

  1. Vérifier si number > 0
  2. Appliquez l’opérateur de décalage vers la droite de 1 bit puis appelez la fonction de manière récursive.
  3. Sortir les bits du number
#include <stdio.h>
void convertToBinary(unsigned n) {
  if (n > 1) convertToBinary(n >> 1);

  printf("%d", n & 1);
}
int main() {
  // Write C code here
  printf("Binary of the number is: ");
  convertToBinary(8);
  printf("\n");

  return 0;
}

La sortie de l’extrait de code donné est :

Binary of the number is: 1000
Muhammad Husnain avatar Muhammad Husnain avatar

Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.

LinkedIn