algo inversement de bits

algo inversement de bits - Algo - Programmation

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 */  
 
}  
 
}  
}

Reply

Marsh Posté le 16-11-2005 à 14:39:12   

Reply

Marsh Posté le 16-11-2005 à 14:40:12    

inverser, genre inverser chaque bit, remplacer les 0 par des 1 et inversement, toussa [:petrus dei]


Message édité par masklinn le 16-11-2005 à 14:42:13

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-11-2005 à 14:45:01    

non, lire les bit de droite a gauche... genre 001 devient 100

Reply

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 [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 16-11-2005 à 15:22:25    

comment ca? aurais-tu un exemple?

Reply

Marsh Posté le 16-11-2005 à 15:26:54    

Ouh là, vous avez jamais fait d'arithmétique sur les bits [:petrus dei]
(&, ^, |, et les décalages de bits avec << et >> )


Message édité par masklinn le 16-11-2005 à 15:27:45

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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?

Reply

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 << [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

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....

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed