algo inversement de bits - Algo - Programmation
Marsh Posté le 16-11-2005 à 14:40:12
inverser, genre inverser chaque bit, remplacer les 0 par des 1 et inversement, toussa
Marsh Posté le 16-11-2005 à 14:45:01
non, lire les bit de droite a gauche... genre 001 devient 100
Marsh Posté le 16-11-2005 à 14:55:03
ahhh
Ben tu testes chaque bit de la donnée initiale avec un ET binaire et tu le places en inverse dans la destination non
Marsh Posté le 16-11-2005 à 15:26:54
Ouh là, vous avez jamais fait d'arithmétique sur les bits
(&, ^, |, et les décalages de bits avec << et >> )
Marsh Posté le 16-11-2005 à 16:13:56
si mais je ne voit pas comment votre idée fonctionne, pouvez vous l'expliquer autrement?
Marsh Posté le 16-11-2005 à 21:27:23
tu es au courant qu'il est possible de tester la valeur de chaque bit d'un octet (ou plus) avec & et <<
Marsh Posté le 18-11-2005 à 14:00:47
en fait, j'ai un tableau de valeur et je veux les trier de la facon suivante:
mon tableau a pour valeur f0,f1,f2,f3,f4,f5,f6,f7 par exemple et je veux mettre les valeur ayant l'indice pair d'un coté, et l'indice impair de l'autre coté. pour cela, on m'a conseillé l'inversement des bits:
0->000->000->0
0->001->100->4
0->010->010->2
0->011->110->6
0->100->001->1
0->101->101->5
0->110->011->3
0->111->111->7
et mais valeur prennent la position f0,f4,f2,f6,f1,f5,f3,f7.
donc enfait je travialle sur les indice de mes valeurs...comment je fait ca?
en fait, je sais pas par ou commencer....
Marsh Posté le 18-11-2005 à 22:00:22
Je suis pas sur d'avoir vraiment compris ce que tu cherches a faire, mais cette histoire d'invesion de bits me semble inutilement compliquee. Tu va perdre du temps a manipuler des bits alors que si ton tableau a N cases (indices de 0 a N-1), N pair, il te suffit de parcourir ton tableau de 1 a (N/2 - 1) par pas de 2 et d'echanger cette case i avec la case (i + N/2 - 1). Fait un dessin, c'est evident.
Marsh Posté le 16-11-2005 à 14:39:12
Bonjour tout le monde,
j'ai un petit probleme avec l'inversement de bit. je doit faire une fonction qui inverse les bits et je ne sais pas comment faire. j'ai comme un aide,un alogithme pour m'aider, mais je le comprend pas...si qq1 peut m'aider, svp. je suis en train de péter un cable...merci d'avance
voici l'ago:
Algorithme détaillé de la fonction init_spectre :
void init_spectre(float signal_discret[N],float spectre[N][2])
{
int i,i2,j,k;
for(i=0;i<N;i++)
{
/************* Sauvegarde de i dans i2 *************/
/********** Calcul de l'indice j **********/
j=0;
for(k=1;k<=P;k++)
{
/* Décalage de j de 1 bit vers la gauche */
/* Recopie du bit le plus à droite de i2 dans j */
/* Décalage de i2 de 1 bit vers la droite */
}
}
}