Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3130 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  "retourner" un nombre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

"retourner" un nombre

n°1451969
abaddon200​2
Posté le 04-10-2006 à 11:01:43  profilanswer
 

Bonjour tout le monde,
 
Je cherche le nom d'une opération (et accessoirement la façon de faire peu importe en quel assembleur) d'une opértion qui me "retourne" un nombre. Je m'explique plus clairement avec un exemple.
 
j'ai un nombre sur 8 bits que je souhaite retourner, c'est-à-dire ceci :
 
si mon nombre de base est %10011011 je souhaite obtenir %11011001, c'est à dire placer b7 sur b0, b6 sur b1, b5 sur b4, b4 sur b3, b3 sur b4, etc.
 
pareil si l'opération porte sur un integer b15 sur b0, b14 sur b1, etc.
 
Voilà.
 
Merci d'avance pour votre aide.
 
edit: est-il possible de le faire en une seule opération?


Message édité par abaddon2002 le 04-10-2006 à 11:35:42
mood
Publicité
Posté le 04-10-2006 à 11:01:43  profilanswer
 

n°1452040
Elmoricq
Modérateur
Posté le 04-10-2006 à 12:02:24  profilanswer
 

ror ?
 
edit : ah non, j'avais pas noté l'inversion totale, j'croyais que c'était une bête rotation  [:pingouino]


Message édité par Elmoricq le 04-10-2006 à 12:05:39
n°1452053
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 12:37:50  profilanswer
 

tu devrais pouvoir t'en sortir avec;
 
mov al , %00101010
xor bl , bl
mov cx , 8
boucle:
rol bl, 1
ror al, 1
adc bl  , 0
loop boucle
 
bon ok c'est pas en une seul op... mais c'est deja pas mal


Message édité par sociopath_epitech le 04-10-2006 à 12:39:01
n°1452055
Mackila
Posté le 04-10-2006 à 12:49:04  profilanswer
 

Ca a déja été traité sur ce forum, mais je sais plus ou...
Certains étaient venus avec des solutions très ingénieuses, à base de masques et de permutations...

n°1452073
abaddon200​2
Posté le 04-10-2006 à 13:31:50  profilanswer
 

merci beaucoup pour vos réponses  :p .
 
Mackila: Oui le problème est que je suis très critique au niveau des temps. je parcoure donc le forum pour voir ces solutions..
 
sociopath_epitech: oui j'utilises un truc du genre actuellement mais sans boucle pour gagner quelques cycles..

n°1452135
sociopath_​epitech
dont ask me why
Posté le 04-10-2006 à 14:51:28  profilanswer
 

ok... pour ma part c'est tout ce que je peut t'apporter,,, bon courage! :)

n°1456508
tbp
Posté le 13-10-2006 à 09:52:37  profilanswer
 

Celà peut se faire avec une LUT en 1 opération, option évidente ;) , mais aussi - pour 8bits à retourner -:

Code :
  1. uchar_t result = (val * 0x0202020202ULL & 0x010884422010ULL) % 1023;


 
c.a.d 3 opérations dont 1 multiplication et division en 64bits, cf http://www.inwap.com/pdp10/hbaker/ [...] ml#item167
 
Il y a des variantes plus longues sans division, d'autres encore plus longues avec multiplications mais pas en 64bits et enfin une décomposition générique à base de masques magiques et décalages.


Message édité par tbp le 13-10-2006 à 09:56:13

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  "retourner" un nombre

 

Sujets relatifs
[postgresql]requete nombre de colonnes[Résolu]Nombre d'occurrence d'un mot
[SQL] Compter le nombre de 'a' dans le texte d'un champPb de raptriement dans excel d'un nombre saisi dans 1 textbox
recherche du nombre de colonnesNombre message dossier outlook
[non résolu] Retourner le paragraphe le plus récent par document[Java] Calcul d'un nombre d'heure entre 2 dates
Fontion utilisant un générateur de nombre entier bornécomment retourner le nombre d'éléments d'un tableau ?
Plus de sujets relatifs à : "retourner" un nombre


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)