Calculatrice bit à bit
60 AND 13 donne 12, 60 OR 13 donne 61 et 60 XOR 13 donne 49. Combinez deux entiers de 32 bits avec AND, OR, XOR ou un décalage et obtenez exactement ce que calculeraient C, Java ou JavaScript, les deux nombres bien visibles. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- A
- 60
- B
- 13
- Op
- Xor
- Résultat
- 49
Elle suit la même sémantique de complément à deux que C, Java et JavaScript, de sorte que le nombre renvoyé correspond à ce que votre propre code calculerait, sans arrondi en virgule flottante ni surprise. Les deux opérandes sont renvoyés avec le résultat, et toute valeur qui n'est pas un entier 32 bits authentique est rejetée avec une erreur claire et non facturée, au lieu d'être tronquée en silence.
Ce que fait réellement une opération bit à bit
Une calculatrice bitwise travaille sur la représentation binaire des entiers plutôt que sur leur valeur décimale. Quand vous calculez 60 AND 13, la machine aligne les bits des deux nombres — 111100 et 001101 — et ne conserve un 1 que là où les deux opérandes ont un 1, ce qui produit 12. OR conserve un 1 là où l'un ou l'autre en a un, ce qui donne 61, et XOR conserve un 1 uniquement là où les bits diffèrent, ce qui donne 49.
Ces trois opérations sont les briques des champs de drapeaux, des masques de permissions, des sous-réseaux, des fonctions de hachage et des formats de compression. Comme le résultat ne dépend que des deux opérandes, un calcul bit à bit est totalement déterministe : la même paire d'entiers donne toujours la même réponse, sur n'importe quelle machine et dans n'importe quel langage utilisant des entiers 32 bits en complément à deux.
Décalages, bit de signe et sémantique 32 bits
Les décalages déplacent tous les bits du premier opérande vers la gauche ou la droite selon la quantité indiquée dans le second. Un décalage à gauche de n positions multiplie par deux à la puissance n, en écartant les bits qui sortent par le haut ; c'est la voie rapide classique pour les petites puissances de deux. Le décalage à droite existe en deux variantes, et la différence compte.
Le décalage arithmétique, shr, copie le bit de signe dans les positions libérées, donc un nombre négatif reste négatif : moins huit décalé d'une position vers la droite donne moins quatre. Le décalage logique, ushr, insère des zéros à la place, ce qui réinterprète la valeur comme non signée et correspond à ce que vous voulez pour extraire des champs de bits d'un mot compacté.
Selon la convention de JavaScript et Java, seuls les cinq bits de poids faible de la quantité de décalage sont utilisés, donc décaler de 33 revient à décaler de 1. Les deux opérandes sont validés comme de véritables entiers 32 bits avant qu'un seul bit ne soit touché, et toute entrée hors limites ou non entière est rejetée au lieu d'être tronquée sans avertissement.
Comment l'utiliser en pratique
La requête comporte trois champs : deux entiers, a et b, et l'opération op, qui peut être and, or, xor, shl, shr ou ushr. La réponse répète l'opération et les deux opérandes à côté du résultat entier, de sorte que vous pouvez la stocker ou la journaliser sans reconstruire l'appel. Il n'y a aucun état entre les requêtes et rien n'est stocké, donc les mêmes entrées renvoient toujours le même résultat et vos données ne s'attardent jamais sur un serveur.
Cas d’usage
Décoder des drapeaux compactés et des masques de permissions
Vérifiez qu'un bit est actif, effacez un drapeau ou combinez des bits de permissions d'un champ de rôles avec AND, OR et XOR sans écrire de script improvisé.
Vérifier l'arithmétique des décalages entre langages
Confirmez ce que produit un décalage à droite signé ou logique avant de porter du code bas niveau, pour qu'un bug de signe n'atteigne jamais la production.
Questions fréquentes
Combien cela coûte-t-il ?
C'est aussi gratuit dans votre navigateur sur cette page, avec exactement le même code.
Quelles opérations sont prises en charge ?
AND, OR, XOR, décalage à gauche (shl), décalage arithmétique à droite (shr) et décalage logique à droite (ushr).
Quelles plages d'entrée sont acceptées ?
Les deux opérandes doivent être des entiers dans la plage signée 32 bits, de -2147483648 à 2147483647.
Comment les nombres négatifs sont-ils traités dans les décalages ?
shr copie le bit de signe, donc les valeurs négatives restent négatives ; ushr remplit avec des zéros en traitant la valeur comme non signée. Les deux suivent la sémantique du complément à deux sur 32 bits.
Que se passe-t-il si je décale de plus de 31 positions ?
Seuls les cinq bits de poids faible de la quantité de décalage sont utilisés, comme en JavaScript et en Java : décaler de 33 revient à décaler de 1.
Quelque chose est-il stocké ?
Non. Chaque requête est calculée puis écartée ; il n'y a aucun état entre les appels.
Outils associés
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/math/bitwise \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":60,"b":13}'const res = await fetch("https://api.kit.forhosting.com/math/bitwise", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 60,
"b": 13
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/bitwise",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 60,
"b": 13
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/bitwise", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":60,"b":13}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":60,"b":13}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/bitwise", 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
{
"a": 60,
"b": 13
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.bitwise",
"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. |
Notes techniques
L'API de la calculatrice bitwise applique une opération bit à bit — AND, OR, XOR, décalage à gauche, décalage arithmétique à droite ou décalage logique à droite — à deux entiers de 32 bits et renvoie le résultat entier exact.
Ce que fait réellement une opération bit à bit
C'est exactement le contrat de ce endpoint : vous envoyez deux entiers et le nom d'une opération, et vous recevez le même entier que votre code calculerait, avec les deux opérandes répétés pour que la réponse soit auto-descriptive dans un journal ou une piste d'audit.
Utiliser le endpoint en pratique
Le même code qui tourne sur notre edge tourne gratuitement dans votre navigateur sur cette page, ce qui signifie que vous pouvez prototyper un masque ou vérifier un décalage à la main et ne payer que lorsque vous automatisez l'appel : $0.002 par requête via l'API. Si un opérande manque, n'est pas un entier ou sort de la plage signée 32 bits, le endpoint répond par une erreur invalid_input et l'appel n'est pas facturé, ce qui permet de le brancher directement sur un pipeline qui ingère des données non fiables.
Cas d'intégration
Enseigner et déboguer les représentations binaires
Montrez à des étudiants ou à des collègues exactement comment deux entiers se combinent bit par bit, avec le même résultat dans le navigateur et dans l'API.