Fonction bizzar !!!!!
netssi
-
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 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);
}
Configuration: Windows XP Internet Explorer 7.0
3 réponses
-
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. -
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 -
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