Fonction bizzar !!!!!

netssi -  
 netssi -
Bonjour,
a koi sert cette fonction svp
char * ToBin(int x)
{
char *ans=new char[20];
int i=0;
while(x>=1)
{
if(x%2==1) ans[i]='1'; else ans[i]='0';
x/=2; i++;
}
if(x==1) ans[i]='1',i++;
ans[i]='\0';
strrev(ans);
return(ans);
}
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Cette fonction, comme son nom l'indique (ToBin : en Binaire) permet de mettre dans une chaîne de caractère la représentation binaire de l'argument.
0
netssi
 
mais ca sert a koi kand on parle de cryptographie (rsa) ??
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Quand tu fais du chiffrement par bloc (RSA et autre), tu dois prendre chaque code de ton message et le convertir en binaire. Ensuite tu fais des blocs de N bits qui vont chacun être chiffrés avec l'algorithme.
Cdlt
0
netssi
 
je peux avoir ton email b1 sure si c possible .....
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > netssi
 
Non désolé. Pose tes questions ici, ça fera profiter tout le monde ;)
0
amie > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
c bien et gentil de penser aux autres *-*
cdlt
0
netssi > fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention  
 
t raison :d
alors je vx avoir l utilité de chak ligne de cette fonction
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Je commente chaque ligne :
char * ToBin(int x)
{
char *ans=new char[20]; //déclaration d'une chaîne de caractère de 19 éléments (le 20è devant être le \0)
int i=0;
while(x>=1) 
{
if(x%2==1) ans[i]='1'; else ans[i]='0'; //on met le reste de x par 2 dans ans[i]. Plus court serait : ans[i]=x%2 + '0';
x/=2; i++; //on récupère le quotient de x par 2, et on se décale d'un cran vers la droite pour la chaîne (éviter de récrire par dessus)
}
if(x==1) ans[i]='1',i++;  //si x vaut 1, alors on rajoute un 1.
ans[i]='\0'; //le fameux \0 qui permet de terminer la chaîne.
strrev(ans); //inverser la chaîne
return(ans); //retourne la chaîne
}

Cdlt
0
netssi
 
merci grave monsieur
une dérniere quetion : la fonction BigInt ??????????????????????????????????????????????
0