Décalage arithmétique à droite d’un entier signé
Ce calculateur de décalage arithmétique à droite déplace les bits d’un entier signé et recopie le bit le plus significatif dans les positions libérées à gauche.
Lancer gratuitement
Choisissez une largeur, saisissez un entier décimal, hexadécimal ou binaire signé, puis indiquez le décalage. Le résultat fournit des valeurs décimales exactes et des motifs binaires complétés à la largeur choisie, sans dépendre de la taille implicite des entiers d’un langage.
Définissez d’abord la largeur signée
Un décalage arithmétique n’a de sens précis que si la largeur est connue. Les mêmes bits peuvent représenter une valeur positive à une largeur et négative à une autre, car le bit de poids fort porte le signe en complément à deux. Choisissez de 2 à 1024 bits et saisissez une valeur comprise dans l’intervalle signé correspondant. Le calculateur refuse les dépassements au lieu de tronquer silencieusement. Utilisez le décimal pour un nombre négatif, ou les préfixes 0x et 0b pour comparer un registre ou un champ binaire. Le motif d’entrée est complété afin que vous puissiez voir tous les bits.
Comprenez l’extension du signe
Un décalage logique insère toujours des zéros à gauche. Le décalage arithmétique répète le bit de signe : zéro pour une valeur positive ou nulle, un pour une valeur négative. Pour les nombres négatifs, l’effet numérique correspond à une division par une puissance de 2 arrondie vers moins l’infini : moins cinq décalé d’un rang donne moins trois. La sortie présente le résultat décimal, le motif binaire complet et `sign_bit`, qui indique le bit d’origine recopié.
Gérez les grands décalages avec exactitude
Un décalage nul ne modifie rien. Si le nombre de rangs atteint ou dépasse la largeur, seule l’extension du signe subsiste : zéro pour une valeur non négative et moins un pour une valeur négative. Ce choix évite le masquage du compteur pratiqué par certains processeurs. Les calculs emploient des entiers de précision arbitraire. Les résultats décimaux sont des chaînes, car JSON ne représente pas exactement tous les entiers sur 64, 128 ou 1024 bits. Analysez-les donc avec un type entier exact.
Cas d’usage
Vérifier une instruction signée
Comparez un émulateur, un compilateur ou un processeur à une opération de largeur explicite.
Déboguer un format binaire
Observez le comportement d’un champ signé lors d’une opération qui conserve son signe.
Expliquer le complément à deux
Affichez les motifs complets avec leurs interprétations décimales exactes.
Questions fréquentes
Que fait un décalage arithmétique à droite ?
Il déplace les bits à droite et remplit les positions hautes avec le bit de signe initial.
Quelle différence avec un décalage logique ?
Le décalage logique insère des zéros ; l’arithmétique insère le signe et préserve les valeurs négatives.
Quels formats d’entrée sont acceptés ?
Utilisez du décimal signé, ou les préfixes 0x pour l’hexadécimal et 0b pour le binaire.
Que se passe-t-il si le décalage atteint la largeur ?
Le résultat vaut zéro pour une valeur non négative et moins un pour une valeur négative.
Pourquoi les valeurs décimales sont-elles des chaînes ?
Elles conservent les grands entiers exacts au-delà de la plage numérique sûre de JSON.
Quel est le prix d’un appel API ?
Chaque appel API coûte $0.002. La version navigateur emploie le même calcul déterministe.
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/dev/arithmetic-shift-right \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"-42","width":8,"shift":3}'const res = await fetch("https://api.kit.forhosting.com/dev/arithmetic-shift-right", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "-42",
"width": 8,
"shift": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/arithmetic-shift-right",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "-42",
"width": 8,
"shift": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/arithmetic-shift-right", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"-42","width":8,"shift":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"-42","width":8,"shift":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/arithmetic-shift-right", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"value": "-42",
"width": 8,
"shift": 3
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.arithmetic_shift_right",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |