ForHosting KIT · Outils pour développeurs

Calculateur de rotation de bits à gauche et à droite

Ce calculateur effectue une rotation circulaire vers la gauche ou la droite dans un entier non signé de largeur fixe.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Les bits qui quittent une extrémité réapparaissent immédiatement à l’autre, comme dans les registres à décalage, les primitives cryptographiques, les sommes de contrôle, les systèmes embarqués et les formats de bas niveau. Saisissez une valeur décimale, hexadécimale ou binaire, choisissez sa largeur et le sens, puis indiquez un nombre de rotations positif ou nul. Le calculateur conserve les zéros initiaux et fournit des résultats exacts en décimal, binaire de largeur fixe et hexadécimal complété.

Choisissez la valeur et la largeur exacte du registre

Une rotation n’a de sens que si la largeur en bits est connue. Une même valeur numérique peut produire des résultats différents dans un registre de 8 bits et dans un registre de 16 bits, car la limite de bouclage change de position. Saisissez la valeur non signée en notation décimale ordinaire, ou employez le préfixe 0x pour l’hexadécimal et 0b pour le binaire. Sélectionnez ensuite une largeur comprise entre 1 et 4096 bits. La valeur doit tenir entièrement dans cette largeur ; le rejet des valeurs trop grandes évite qu’une troncature implicite masque des informations. Les zéros initiaux appartiennent au registre, même s’ils ne figurent pas dans la saisie. Ainsi, le nombre décimal 5 sur 8 bits correspond à 00000101, et non simplement à 101. Le champ binaire renvoyé est toujours complété jusqu’à la largeur exacte, tandis que le champ hexadécimal reçoit assez de chiffres complets pour la représenter. Cette présentation facilite la comparaison avec un schéma de registre, un champ de protocole, un débogueur ou une implémentation logicielle.

Comprenez le mouvement circulaire dans les deux sens

Une rotation circulaire diffère d’un décalage logique ordinaire : aucun bit n’est supprimé et aucun nouveau zéro n’est inséré. Lors d’une rotation à gauche, les bits se déplacent vers l’extrémité de poids fort ; ceux qui franchissent cette limite reviennent aux positions de poids faible. Lors d’une rotation à droite, le mouvement s’inverse et les bits sortant du côté de poids faible réapparaissent du côté de poids fort. Le calculateur applique cette opération au motif complet de largeur fixe au moyen d’un calcul entier exact. Un nombre de rotations égal à la largeur restitue le motif initial, tout comme chaque multiple entier de cette largeur. Le nombre demandé est donc réduit modulo la largeur, et le résultat indique le nombre effectif sous normalized_shift. Cette information aide à contrôler un programme qui accepte des nombres non bornés ou à modéliser un circuit dont le sélecteur ne requiert qu’un état par position du registre. Un nombre effectif nul est traité directement et conserve la valeur sans décalage de largeur complète invalide.

Lisez le résultat et contrôlez une implémentation

La réponse conserve la valeur initiale sous forme décimale normalisée, la largeur choisie, le nombre demandé, le nombre effectif et le sens. Elle présente ensuite la valeur obtenue en décimal, en binaire de largeur fixe et en hexadécimal majuscule. Ces formes équivalentes répondent à des besoins distincts : le binaire rend chaque bit bouclé visible, l’hexadécimal correspond de façon compacte aux registres et à la documentation technique, et le décimal convient aux API ou aux jeux de tests qui évitent les littéraux préfixés. Pour tester une implémentation, choisissez un motif comportant des bits à 1 près des deux extrémités afin de révéler immédiatement un déplacement incorrect. Testez également zéro, une valeur égale à la largeur et une valeur supérieure. Ces cas détectent les erreurs fréquentes de réduction modulaire et de comportement propre au langage. L’algorithme emploie des entiers de précision arbitraire plutôt que les opérateurs JavaScript sur 32 bits ; les grandes largeurs ne subissent donc ni conversion signée ni masquage silencieux. Le traitement est déterministe, local et borné, sans réseau ni état aléatoire ou temporel.

Contrôler la logique d’un registre embarqué

Comparez la sortie d’un micrologiciel à un motif binaire exact de largeur fixe avant d’écrire ou de relire le code d’un appareil.

Vérifier des étapes cryptographiques

Confirmez les rotations circulaires de fonctions de hachage, de chiffrements et de mélanges sans piège arithmétique signé sur 32 bits.

Créer des vecteurs de test de protocole

Produisez les valeurs décimales, binaires et hexadécimales attendues pour des champs dont les bits bouclent dans une largeur définie.

Quelle différence existe-t-il entre rotation et décalage ?

Un décalage logique supprime des bits à une extrémité et insère des zéros à l’autre. Une rotation ramène ces bits du côté opposé et les conserve tous dans le motif de largeur fixe.

Que se passe-t-il si le nombre dépasse la largeur ?

Le nombre est réduit modulo la largeur. La réponse affiche à la fois le décalage demandé et le décalage effectif normalisé.

Puis-je saisir des valeurs hexadécimales ou binaires ?

Oui. Ajoutez 0x devant une valeur hexadécimale et 0b devant une valeur binaire. Une saisie sans préfixe est interprétée en décimal.

Pourquoi la valeur doit-elle tenir dans la largeur choisie ?

Une troncature automatique pourrait supprimer silencieusement les bits de poids fort et donner un résultat trompeur. Le calculateur rejette la valeur afin que vous corrigiez explicitement la valeur ou la largeur.

Quel est le prix d’une requête API ?

Chaque requête API coûte $0.002. La version pour navigateur exécute localement le même calcul déterministe.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/elec/rotate-bits

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/elec/rotate-bits \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"150","width":8,"shift":3,"direction":"left"}'
{
  "value": "150",
  "width": 8,
  "shift": 3,
  "direction": "left"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.rotate_bits",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →