All pastes #777002 Raw Edit

Stuff

public text v1 · immutable
·published 2007-11-16 12:50 UTC
rendered paste body

/*Directives de pre-processeur*/

#include <iostream>
#include <limits.h>	
#include <iomanip>

using namespace std; //Pour le C++





/***************************************************
Fonction affichage de bit
***************************************************/

void PrintBinaryNumber(unsigned int n)
{


unsigned int mask;

// On met le mask tout a gauche. Ne pas oublier de mettre -1 sinon on "ne verra pas ce bit"
// De plus on a mis CHAR_BIT car celui varie en fonction de la compilation (du aux processeur)

mask = 1 << (sizeof(unsigned int)*CHAR_BIT - 1);

cout << "Voici la conversion de ce nombre en binaire : \n\n";

/*****************************************************
Cas du n=0
*****************************************************/

if(n == 0)
{
cout << "0";
return ;
}

/*****************************************************
Instructions permettant de passer les zeros
(pour notre TP, on ne l'utilise pas car on veut 
afficher ces zeros)
*****************************************************/

/*while(!((mask) & n))
{
mask >>= 1;
}*/

do
{

/* Si ce nombre (codé en binaire) et le mask donne 1 alors on affiche 1
sinon on affiche 0*/

cout << ((n & mask) ? "1 " : "0 ");

}while(mask >>= 1); // on decale vers la droite 'mask'

} 



/****************************************************
Fonction complements des bits
****************************************************/

void PrintBinaryInverseNumber(unsigned int n)
{
unsigned int mask;
int cpt= 1;
// On met le mask tout a gauche. Ne pas oublier de mettre -1 sinon on "ne verra pas ce bit"
// De plus on a mis CHAR_BIT car celui varie en fonction de la compilation (du aux processeur)

mask = 1 << (sizeof(unsigned int)*CHAR_BIT - 1);

if(n == 0)
{
	while (cpt <= 32)
	{
	cout << "1 ";
	cpt ++;
	}

}

}



































int main()
{
int   number;
char rep;	//Pour recommencer le traitement


cout << "\t\t T R A I T E M E N T\t D E\t B I T S\n\n\n";

do
{

cout <<"Entrer le nombre entier a traiter : \n\n";
cin >> number;
cout <<"\n";
fflush(stdin);


/*Appel de la fonction affichage*/

PrintBinaryNumber(number);
cout << "\n\n";
fflush(stdin);

PrintBinaryInverseNumber(number);
cout <<"\n\n";
fflush(stdin);

cout << "Recommencer (o/n) ?";
cin >> rep;
fflush(stdin);

}while (rep!='n');

return 0;
}