Dans le premier post, mais ça n'est pas important puisque le passage à 8, 32 ou 2^N bits est évident.
Dernière modification par bobflux ; 03/04/2024 à 22h34.
03/04/2024, 23h12
#33
Jack
Modérateur
Date d'inscription
avril 2003
Localisation
Metz
Messages
17 799
Re : Swap de bits en C
Pour ma part, il me semble avoir compris que quelle que soit la taille du mot binaire, on veut l'inverser bit à bit en permutant un bit avec son symétrique. Mais ça n'est que mon avis puisque la demande initiale ne portait il me semble que sur un seul octet.
04/04/2024, 00h07
#34
bobflux
Date d'inscription
août 2010
Messages
7 969
Re : Swap de bits en C
Oui
Le truc que j'ai posté consiste à couper le mot en deux moitiés, permuter les deux moitiés, et refaire ça récursivement sur chaque moitié. À la fin les bits sont retournés. L'intérêt est de traiter plusieurs octets à la fois avec une complexité en log plutôt que linéaire. On traite plusieurs octets d'un coup, et il n'y a pas de boucle.
On peut faire mieux sous certaines conditions avec des multiplications mais ça reste du tranchage de cheveux dans le sens de la longueur...
Mais en vrai c'était surtout parce qu'en me promenant sur le forum je suis tombé sur l'éternelle querelle à base de "en assembleur on peut optimiser à mort un algorithme pourri", alors j'ai pas pu m'en empêcher...
04/04/2024, 04h29
#35
pm42
Date d'inscription
juillet 2015
Messages
15 085
Re : Swap de bits en C
Envoyé par bobflux
Dans le premier post, mais ça n'est pas important puisque le passage à 8, 32 ou 2^N bits est évident.
Dans le 1er post, il parle d'un octet. L'extrapolation a des mots plus long n'est pas de le faire octet par octet mais bien une rotation.
C'est ce qui a été fait dans tout le fil donc proposer quelque chose de différent n'a pas grand sens.
Envoyé par bobflux
Mais en vrai c'était surtout parce qu'en me promenant sur le forum je suis tombé sur l'éternelle querelle à base de "en assembleur on peut optimiser à mort un algorithme pourri"
Il n'y a eu aucune querelle à ce sujet dans le fil.
Sinon, adaptée à la taille du mot, la méthode proposée est intéressante en effet.