Convertisseur d'un nombre de bits en entier non signé

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 607 fois - Téléchargée 29 fois

Contenu du snippet

Alors, premièrement je me présente, je suis nouveau sur le site et je viens de commencer à coder en C++ (ou du moins à essayer)...
Donc, les expérimentés, ne m'en voulez pas pour les fautes ou autres. Cependant, toute remarque est la bienvenue !!!
Ce code ne sert pas à grand chose, c'était surtout un des premiers codes pour moi.
Donc, si vous voyez des améliorations ou une faute dans mon programme, et bein dites le, ne serais ce que pour m'aider dans mon apprentissage.
Ce code est censé convertir un nombre de bits en entiers, par exemple les couleurs en 16 bits ne veut pas dire grand chose pour moi, donc je l'ai converti en un nombre exact de couleurs.
Voila tout, j'espere que j'ai été assez clair dans mes explications (ce qui n'est pas evident). Et n'oubliez pas de tester mon code, il a été compilé sous borland C++ 5.02.

Source / Exemple :


#include <iostream.h>
#include <conio.h>

int menu(void);
unsigned int conversion(int);
unsigned int puissance(int , int);

int main(void)
{
int choix;
int nbre;
unsigned int resultat;

do
{
choix=menu();
switch(choix)
	{

case 1 :
cout<<"Jusqu'a combien peut on compter avec un nombre a x bits?\n";
cout<<"Pour le savoir, tapez ce nombre x : ";
cin>>nbre;

resultat=conversion(nbre);
gotoxy(10,10);
cout<<"On peut compter jusqu'a : "<<resultat<<"\n\n\n\n";
cout<<"Appuyez sur une touche pour continuer...";
getch();
clrscr();
break;

case 2 :
cout<<"Merci d'avoir essaye ce petit programme cree par JB";
getch();
return 1;
break;

case 3 :
int a,b;
unsigned int result;
cout<<"Quel nombre a voulez vous elever a la puissance b?\n";
cout<<"Entrez le nombre a : ";
cin>>a;
cout<<"\nEntrez le nombre b : ";
cin>>b;
result=puissance(a,b);
cout<<"Le resultat est : "<<result<<"\n";
cout<<"Appuyez sur une touche pour continuer...";
getch();
clrscr();
break;

default :
cout<<"Rappel, tapez un nombre qui soit 1, 2 ou 3...\n\n\n\n\n";

break;

	}

}while (choix!=2);

getch();

return 0;
}

int menu(void)
{
char menu[4]={'M','E','N','U'};
int test=25;
int res;
for (int i=0;i<test;i++) cout<<"-";
for (int j=0;j<4;j++) cout<<menu[j];
for (int k=0;k<test;k++) cout<<"-";
cout<<"\n";
cout<<"Tapez 1 pour calculer\n";
cout<<"Tapez 2 pour quitter\n";
cout<<"Tapez 3 pour verifier la fonction puissance\n";
for (int i=0;i<((2*test)+4);i++) cout<<"#";
cout<<"\n";
cin>>res;
clrscr();

return res;
}

unsigned int puissance(int a, int b)
{

unsigned int resultat=1;
for (int i=0;i<b;i++) resultat=resultat*a;
return resultat;

}

unsigned int conversion(int nb)
{
unsigned int resultat=0;
for (int i=0;i<=nb;i++) resultat=resultat+puissance(2,i);
return resultat;
}

Conclusion :


Je n'ai pas mis les tests pour voir si le nombre entré est négatif (ne marche pas avec un nombre négatif) et ne marche pas non plus avec 32 bits ou plus (ca , je ne sais pas comment faire)...
Il existe aussi une fonction puissance que j'ai faite, pour les débutants (encore plus que moi) et qui ne sauraient pas programmer cette fonction.
Voila, je pense que c'est tout.
J'essayerais de mettre d'autres codes en ligne pour ceux que ca intéresse, c'est à dire les débutants.
Au fait, peut on écrire avec des accents par exemple dans un programme comme j'ai fait, car dans l'invite de commande MS-DOS, mes accents ne ressortent pas!

A voir également

Ajouter un commentaire Commentaires
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Ok, désolé, je savais pas qu'il fallait mettre une majuscule, j'ai essayé et ça marche nickel !!!
Je suis trop content. Merci.
J'ai fait un nouveau petit prog si vous voulez le voir, c'est pour "animer" (de façon très sommaire, je le sais :)) l'affichage d'un menu, ou autre. Je le met en ligne maintenant.
Messages postés
252
Date d'inscription
vendredi 13 juin 2003
Statut
Membre
Dernière intervention
25 avril 2011

Salut jb60

Peut-être es-tu au courrant que sleep et Sleep c'est pas pareil...
Il faut un majuscule au début du mot pour que ça marche...
Sleep est déclarée dans winbase.h mais windows.h l'inclus directement.

Merci djl pour les \

@+ all
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
si tu est sous borland c++ g croit qu'avec dos.h tu pe faire
delay(milisecondes), fo essayer, g le faisai sous borland turbo c++

pour calculer un nombre de bits N en int, tu fait tout simplement 2^N ou (2^N)-1 si on compte le zero et si tu ve que ca rentre dans un unsigned int avec N=32
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Merci a vous,

pour chouchou182, j'ai essayer d'inclure le header <windows.h> et la fonction sleep(10000), mon compilateur me fait une erreur, comme quoi il ne reconnait pas cette fonction. Alors je ne comprends pas, j'utilise borland c++ 5.02...

pour djl, en fait, je ne sais pas exactement comment calculer un nombre de bits en int, j'ai essayé comme ça, et c'est donc possible qu'il y ait une erreur dans le code source, car je savais qu'on pouvait calculer jusqu'à 32bits.
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
fot le doubler pour l'afficher ==>\
Afficher les 10 commentaires

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.