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);
}
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. netssi
       
      mais ca sert a koi kand on parle de cryptographie (rsa) ??
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. netssi
       
      je peux avoir ton email b1 sure si c possible .....
      0
      1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847 > netssi
         
        Non désolé. Pose tes questions ici, ça fera profiter tout le monde ;)
        0
      2. amie > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        c bien et gentil de penser aux autres *-*
        cdlt
        0
      3. netssi > fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention  
         
        t raison :d
        alors je vx avoir l utilité de chak ligne de cette fonction
        0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
    1. netssi
       
      merci grave monsieur
      une dérniere quetion : la fonction BigInt ??????????????????????????????????????????????
      0