Je me demandais s'il y avait un moyen efficace d'effectuer un décalage à droite sur une valeur binaire 8 bits en utilisant seulement ALU opérateurs (NOT, OR, AND, XOR, ADD, SUB)Un poste de barillet droit en utilisant les opérateurs ALU?
Example:
input: 00110101
output: 10011010
Je suis en mesure pour mettre en œuvre un décalage laissé en ajoutant simplement la valeur binaire de 8 bits avec lui-même, car un décalage à gauche équivaut à multiplier par 2. Cependant, je ne peux pas penser à un moyen de faire cela pour le décalage à droite.
La seule méthode que j'ai trouvée jusqu'ici est d'effectuer seulement 7 changements de baril gauche. Est-ce le seul moyen?
probablement vous voulez * rotation *. La rotation est différente du décalage. –
Yah, ça s'appelle * tourne bien *, pas * shift *. – DigitalRoss
L'implémentation shift-left est un vrai changement, car elle se décale en 0 et rejette (déborde) le bit supérieur. – MSalters