La façon la plus rapire de calculer en binai.

Résolu/Fermé
Turki1923 Messages postés 535 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 13 octobre 2018 - 27 nov. 2010 à 12:01
Turki1923 Messages postés 535 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 13 octobre 2018 - 27 nov. 2010 à 16:56
Bonjour,

J'ai appris une façon de transformer les nombres décimal en binaire sur le SdZ .
Mais je voudrai une meilleur façon de convertir les décimal en binaire .


Merci d'avance pour vos réponses .

3 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 nov. 2010 à 12:06
Salut,

Apprendre les divisions par 2 ;-))
Peut être tu devrais donner un peu plus des précisions. Tu veux le faire en quel langage?
De toute façon quelque soit le langage tu peux commencer d'écrire un algorithme en pseudo code.
0
Turki1923 Messages postés 535 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 13 octobre 2018 10
Modifié par Turki1923 le 27/11/2010 à 12:44
Merci de ta réponse .

par exemple moi pour convertir un nombre en binaire j'uttilise cette téchnique :

la table des puissances de 2 :


2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
128 64 32 16 8 4 2

0 0 1 0 1 0 0

exemple disons que j'ai le nombre 40 .

je regarde si 128 rentre dans 40 si non je mes 0 . (comme je l'ai fait en haut
puis je regarde si 64 rentre dans 40 si non je mes 0
puis je regarde si 32 rentre dans 40 oui je mes donc 1
puis je fais 40 ? 32 = 8 . je continue donc avec le 8 .
ainsi de suite ...


mais je trouve que cette technique est beaucoup trop longue , ny'aurai-t-il pas un autre moyen de trouveer la réponse ?

et si vous pouviez me donné un exemple (pour que je comprenne mieu)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 nov. 2010 à 13:21
Tu pourrais par exemple utiliser l'opérateur décalage à droite en C, sachant que chaque décalage à droite est équivalent avec une division par deux.
0
Turki1923 Messages postés 535 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 13 octobre 2018 10
27 nov. 2010 à 13:28
Je n'ai pas compris grand chose a ta réponse :)

peux-tu me donné un exemple ?
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 nov. 2010 à 13:47
Re,

Il y a sûrement mieux. J'ai trouvé cette fonction dans mes archives.
lami20j@debian-acer:~$ cat dec2bin.c 
#include<stdio.h>

void dec2bin (char *bin,unsigned nb);
int main()
{
       char bin[34];
       unsigned decimal;

       printf("Entrez le nombre décimal : ");
       scanf("%u",&decimal);
       getchar();
       dec2bin(bin,decimal);
       printf("%s\n",bin);
       return 0;
}

void dec2bin(char *bin,unsigned nb){
       int i,j,k,tmp;

       for(i=0;nb != 0;nb >>= 1){
               if(nb & 01)
                       bin[i++] = '1';
               else
                       bin[i++] = '0';
       }
       bin[i]='\0';

       for(j=0,k=i-1;j<k;++j,--k){
               tmp=bin[j];
               bin[j]=bin[k];
               bin[k]=tmp;
       }
} 
lami20j@debian-acer:~$ gcc dec2bin.c 
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 1
1
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 2
10
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 127
1111111
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 128
10000000
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 255
11111111
lami20j@debian-acer:~$ ./a.out 
Entrez le nombre décimal : 256
100000000
0
Turki1923 Messages postés 535 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 13 octobre 2018 10
27 nov. 2010 à 14:02
xD je vous ai pas demandé de me dire comment le convertir en langage C
je voulai dire comment le faire mentalement .
0
ghuysmans99 Messages postés 2496 Date d'inscription jeudi 14 juillet 2005 Statut Contributeur Dernière intervention 5 juin 2016 339
27 nov. 2010 à 16:37
Fais une série de divisions euclidiennes en gardant des nombres entiers jusqu'à ce que le quotient soit nul. Après il te suffit de récupérer les restes de division dans le sens inverse.
0
canarder Messages postés 1714 Date d'inscription jeudi 28 août 2008 Statut Membre Dernière intervention 13 mai 2018 354
27 nov. 2010 à 13:22
il y a une méthode en passant par l'hexadécimal, mais je ne la connais pas
0