Connectez-vous via MCP →

Entrez le calcul

Formule

Publicité

Résultats

Résultat décalé
64
valeur décimale
Nombre à décaler 16
Nombre de positions (bits) 2

Qu'est-ce qu'un décalage de bits ?

Un décalage de bits déplace les chiffres binaires d'un entier vers la gauche ou la droite d'un nombre de positions choisi. C'est une opération fondamentale en programmation, dans l'optimisation bas niveau, le traitement graphique, le hachage et les systèmes embarqués. Un décalage à gauche (n << k) déplace les bits vers le poids fort en comblant avec des zéros, tandis qu'un décalage à droite (n >> k) les déplace vers le poids faible.

Rangée de 8 cases de chiffres binaires avec des flèches montrant les bits se déplacer à gauche et à droite
Un décalage de bits déplace chaque bit d'un nombre fixe de positions vers la gauche ou la droite.

Comment utiliser ce calculateur

Saisissez l'entier n, le nombre de positions à décaler k (en bits), puis choisissez le sens du décalage. Le calculateur affiche la valeur décimale obtenue. Cet outil utilise une arithmétique sur entiers signés de 64 bits, conforme au comportement de la plupart des langages de programmation.

La formule expliquée

Chaque décalage d'une position vers la gauche double le nombre : un décalage à gauche de k positions revient donc à multiplier par \(2^{k}\) :

$$\text{Result} = \text{Number (n)} \ll \text{Shift (k)} = n \times 2^{k}$$

Chaque décalage d'une position vers la droite divise le nombre par deux avec troncature : un décalage à droite de k positions effectue donc une division entière par \(2^{k}\) :

$$\text{Result} = \text{Number (n)} \gg \text{Shift (k)} = \left\lfloor \frac{n}{2^{k}} \right\rfloor$$

C'est pourquoi les décalages sont bien moins coûteux que la multiplication ou la division au niveau matériel.

Le décalage d'une position vers la gauche montre les bits se déplacer à gauche avec un zéro à droite ; la valeur double
Chaque décalage d'une position vers la gauche multiplie la valeur par deux ; un décalage vers la droite la divise par deux.

Exemple concret

Prenons n = 16 et un décalage à gauche de k = 2. En binaire, 16 s'écrit 10000. Le décalage de deux positions vers la gauche ajoute deux zéros : 1000000, soit 64. Mathématiquement, \(16 \times 2^{2} = 16 \times 4 = 64\). Dans l'autre sens, \(64 \gg 2 = \left\lfloor 64 / 4 \right\rfloor = 16\) redonne la valeur de départ.

Tableau de Référence des Puissances de Deux

Un décalage à gauche de \(k\) multiplie un nombre par \(2^k\) ; un décalage à droite de \(k\) divise par \(2^k\) (en supprimant le reste pour les entiers). Utilisez ce tableau pour lire instantanément le multiplicateur ou le diviseur pour une quantité de décalage donnée.

Décalage \(k\) \(2^k\) (décimal) Signification de \(\ll k\) / \(\gg k\)
0 1 pas de changement
1 2 \(\times 2\) / \(\div 2\)
2 4 \(\times 4\) / \(\div 4\)
3 8 \(\times 8\) / \(\div 8\)
4 16 \(\times 16\)
5 32 \(\times 32\)
6 64 \(\times 64\)
7 128 \(\times 128\)
8 256 \(\times 256\) (1 octet)
9 512 \(\times 512\)
10 1,024 \(\times 1024\) (1 Kio)
11 2,048 \(\times 2048\)
12 4,096 \(\times 4096\)
13 8,192 \(\times 8192\)
14 16,384 \(\times 16384\)
15 32,768 \(\times 32768\)
16 65,536 \(\times 65536\) (2 octets)
17 131,072
18 262,144
19 524,288
20 1,048,576 \(\times\) 1 Mio
32 4,294,967,296 limite 32-bit
63 9,223,372,036,854,775,808 bit le plus significatif d'un entier signé 64-bit

FAQ

Un décalage à gauche peut-il perdre des données ? Oui : les bits déplacés au-delà de la largeur de l'entier sont supprimés (dépassement de capacité). Sur 64 bits, ce calculateur conserve la valeur.

Que se passe-t-il avec les nombres négatifs lors d'un décalage à droite ? Ce calculateur applique un décalage à droite arithmétique (signé) : le bit de signe est préservé et les nombres négatifs restent négatifs.

Pourquoi utiliser des décalages plutôt qu'une multiplication ou une division ? Les décalages de bits s'exécutent en un seul cycle sur la plupart des processeurs : ils constituent un moyen rapide de multiplier ou diviser par des puissances de deux.

Dernière mise à jour: