Il y a plusieurs façon de convertir un nombre en binaire, en voici une, par décallages de bits
Source / Exemple :
#include <iostream.h> //pour les cout/cin
void main()
{
long nombre; //pour stocker le nombre
int bits; //le nombre de bits
cout << "Combien de bits?\n";
cin >> bits;
cout << "Entrez le nombre a convertir au binaire " << bits << " bits\n";
cin >> nombre;
/* D'abord, i obtient le valeur de bits-1, et la boucle
s'éxécute jusqu'à ce que i soit plus petit que -1. Ça peut
sembler stupide de soustraire 1 à bits, puis de vérifier s'il
est égal à -1, mais c'est nécessaire pour que le modulo fasse
les bons espacements
for (int i = bits-1;i>-1;i--)
{
/*Cette instruction décale les bits de nombre de i bits
De cette facon, les bits gauches sont traités en premier
Ensuite, le filtre binaire 1 s'assure que le bit soit activé
L'instruction retourne 1 si le bit est activé et 0 s'il ne l'est pas
ex: 01110000 11000101
les bits sont décalés de manière que le bit de gauche se
retrouve à la droite. Comme ce bit est zéro, l'expression &1
retourne 0, qui est affiché à l'écran
Ensuite, la prochaine instruction décale, 1 bit de moins, donc
le 2e bit à gauche se retrouve à droite. Ce bit est un 1,
l'expression &1 retourne 1, qui est affiché à l'écran
cout << ((nombre >> i)&1);
if (!(i%8)) // s'il ne reste rien après la division de i par 8
cout << " "; // on met un espace pour séparer les octets
}
cout << "\n"; //ça fait plus beau à la fin
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.