Un décalage binaire est une opération qui peut être directement réalisée par le processeur et qui consiste à décaler d'un ou de plusieurs rangs les bits d'un nombre vers la gauche ou vers la droite.
Un décalage à gauche représente une multiplication par 2 et un décalage à droite représente une division par 2.
On représente des octets par des listes de 8 strings.
Par exemple le nombre binaire 1100 1110 sera représenté par ["1", "1", "0", "0", "1", "1", "1", "0"] Un décalage à droite va donc décaler tous les bits vers la droite puis mettre la valeur "0" pour le bit de poids fort/ La valeur du bit de poids faible est perdue.
["0", "1", "1", "0", "0", "1", "1", "1"]
Un décallage à gauche va décaller tous les bits d'un rang vers la gauche, puis mettre la valeur "0" pour le bit de poids faible. La valeur du bit de poids fort est perdue.
["1", "0", "0", "1", "1", "1", "0", "0"]
Ces fonctions modifient la liste en place et ne renvoient rien.