Mode d’emploi. Cliquer dans l’espace ci-contre et déplacez votre souris de haut en bas.

Argument. Ce diagramme démontre une des techniques de programmation qui exploite la nature §[spatiale](spatialisation), voire §[physiques](physicalisation) des valeurs numériques. Il est complémentaire à bitmask et wraparound dans la mesure que ces trois diagrammes manipule les valeurs à partir de leur composantes §[discrètes](discret), c’est-à-dire comme des suites de « 0 » et de « 1 », ou simplement comme une suite d’interrupteurs ouverts ou fermés. Nous rappelons que dans un « byte » numérique il y a huit interrupteurs représentant soit « 0 » soit « 1 ». Si nous voulons utiliser ces huit interrupteurs pour représenter un chiffre unique, nous superposons sur les huit états binaires un tableau représentant des chiffres qui doivent se multiplier ensuite aux « 0 » et « 1 » pour donner la valeur unitaire. Chaque interrupteur représente dans ce cas une valeur différente, en réalité basé sur les puissances de 2, c’est-à-dire 1, 2, 4, 8, 16, 32, 64, et 128.

Un bitshift prend chacun des ces états §[discrets](discret) et les déplace à doite ou à gauche. Souvent représentés par les signes « >> » ou « << » en prorammation, un bitshift à gauche par exemple prend l’état du « bit » qui represente « 1 » et le déplace dans la case correspondant au bit « 2 ». En décalant chacune des valeurs, on finit par tout simplement doubler la valeur, comme on voit dans le diagramme ci-dessous.

bitshift diagram

Nous partons de la valeur « 42 » qui est représenté en code binaire par la séquence « 00101010 ». En lui applicant un bitshift à gauche, nous nous trouvons avec la séquence « 01010100 », c’est-à-dire « 84 », le double de « 42 ». Avec encore un bitshift avec la séquence « 10101000 », c’est-à-dire « 168 » qui est également le double du chiffre précédent.