oui voila
oui voila
Je viens de capter un truc ...
Pas besoins de manipulation bit a bit !
En realite, ton int vaut bin = 10010010010;
Le seul truc qui me derange c'est qu'un int est limité a 10 chiffre (-2 147 483 648 à 2 147 483 647).
Mais bon :
Ce code a été codé pour donner une base !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 void InversionBit(int* bin) { /* Je copie le nombre binaire dans une chaine de caractere pour plus de facilité */ char copie[10]; copie[10] = sprintf (copie,"%d",(*bin)); int longueur = strlen(copie); /* J'inverse l'ordre grace a une classique permutation circulaire */ int i; for (i=0 ; i<longueur/2 ; i++) { char temp = copie[i]; copie[i] = copie[longueur - 1 - i]; copie[longueur - 1 - i] = temp; } /* Pour resoudre le probleme de precision, j'utilise un double temporaire */ double binTemp; for (i=0 ; i<longueur ; i++) if (copie[i] == '1') binTemp += pow(10.0,longueur-i-1); /* Finally ^^ */ (*bin) = (int)(binTemp); }
Il est certainement améliorable.
Voila, si tu as des questions, ppose les precisement stp
Bon, dans ce cas, la première fonction que je t'ai donnée dans le deuxième message va très exactement faire ce que tu veux : un palindrome bit à bit d'un entier.
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Mais un palindrome, c'est un axe de symetrie, non ? Comme pour le mot RADAR.
Je n'arrive pas a comprendre tout le fonctionnement de ton code.
Si je te donne un int qui a pour bit :
1010.
J'obtient quoi ? 0101 ou 10100101 ?
Vu que c'est sur 32 bits, ton nombre est donc "0000 0000 0000 0000 0000 0000 0000 1010". Ma fonction renverra donc "0101 0000 0000 0000 0000 0000 0000 0000".
Mac LAK.
___________________________________________________
Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.
Sources et composants Delphi sur mon site, L'antre du Lak.
Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.
Rejoignez-nous sur : ► Serveur de fichiers [NAS] ► Le Tableau de bord projets ► Le groupe de travail ICMO
Ce qu'il veut faire n' est pas de la manipulation bits à bits, c' est plutôt de la manipulation 4 bits à 4 bits.
Il peut décomposer son int en 4 char et ensuite inverser( d' abord dans le char) l' ordre des 4 char .
Du moins c' est se que j' ai compris.
Tu as raison, c'est moi qui est pensé a de la manipulation bit a bit. Cependant, on a deja clairement dis qu'il ne voulais pas inverser 4 à 4. Si tu regarde bien (l'exemple coloré un peu plus avant dans les post). Il veut lire de droite a gauche au lieu de gauche a droite.
De plus, il a deux code qui lui font ce qu'il veut.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager