Division binaire
Divisez deux nombres binaires non signés et obtenez le quotient et le reste exacts avec chaque étape de restauration : 110101 divisé par 101 donne 1010, reste 11. Chaque cycle montre le décalage, la comparaison et si le diviseur a été soustrait. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Dividende
- 110101
- Diviseur
- 101
- Quotient
- 1010
- Reste
- 11
Ce calculateur de division binaire divise deux entiers non signés en base deux et fournit un quotient et un reste binaires exacts. Il détaille aussi chaque décalage, comparaison, soustraction et décision de restauration de l’algorithme classique employé pour expliquer le matériel arithmétique. Saisissez des chaînes composées uniquement de zéros et de uns, éventuellement précédées de 0b : le calculateur normalise les zéros initiaux avant le traitement. Comme l’implémentation travaille directement sur les chaînes de bits au lieu de les convertir en nombres JavaScript, les grandes entrées restent exactes.
Définition du quotient et du reste binaires
La division binaire respecte la même identité entière que la division décimale posée : le dividende est égal au diviseur multiplié par le quotient, auquel s’ajoute le reste, et ce reste demeure toujours inférieur au diviseur. Seuls les chiffres écrits et leurs valeurs de position changent. Chaque position binaire représente une puissance de deux ; le quotient se construit donc bit après bit, du bit de poids fort du dividende au bit de poids faible.
Un bit de quotient égal à un signifie que le diviseur tient dans le reste partiel courant ; zéro signifie le contraire. Une fois le dernier bit consommé, le quotient accumulé et le reste partiel forment la réponse. Le calculateur n’accepte que des entiers non signés afin de centrer la trace sur l’opération de magnitude exécutée par un diviseur matériel.
Les zéros initiaux sont retirés des entrées et sorties normalisées. Un dividende nul est valide et produit un quotient et un reste nuls. Le préfixe 0b est admis, mais les espaces internes, chiffres décimaux, signes et points fractionnaires sont refusés pour conserver un contrat binaire sans ambiguïté.
Lire la trace de division restauratrice
La trace contient un cycle pour chaque bit du dividende normalisé. Au début d’un cycle, le reste courant est décalé vers la gauche et le bit suivant du dividende entre à la position de poids faible. L’algorithme compare ensuite ce reste décalé au diviseur.
Si le diviseur tient, il le soustrait, ajoute un au quotient et transmet la différence au cycle suivant. Dans le cas contraire, la soustraction serait négative : l’interprétation matérielle restaure alors le reste non négatif précédent et ajoute zéro au quotient. Cette présentation est pédagogique : un circuit optimisé peut soustraire de manière spéculative puis restaurer, tandis que ce logiciel déterministe compare d’abord et effectue une transition d’état équivalente.
La soustraction étant réalisée sur des chaînes binaires avec une retenue d’emprunt explicite, aucun calcul en virgule flottante n’intervient et aucun bit faible n’est perdu sur des opérandes dépassant un mot machine.
Exploiter le résultat pour étudier et tester le matériel
L’objet renvoyé convient aux explications humaines comme aux contrôles automatisés. Les étudiants en conception numérique peuvent comparer chaque cycle aux registres d’un chemin de données comprenant reste, diviseur, soustracteur, comparateur, quotient et contrôleur. Les auteurs HDL peuvent transformer une réponse correcte en vecteur attendu pour un banc de test Verilog ou VHDL et vérifier que le reste final demeure inférieur au diviseur.
Les mêmes vecteurs servent à valider un diviseur bit à bit en micrologiciel sur un processeur sans instruction native de division. Chaque opérande est limité à 1024 bits afin de borner la trace. Les nombres signés, le point fixe, l’arrondi et les algorithmes non restaurateurs ou SRT restent volontairement hors périmètre.
Cas d’usage
Enseigner la division restauratrice
Parcourez chaque décalage, soustraction conditionnelle, bit du quotient et reste restauré pendant un cours de logique numérique.
Produire des vecteurs de test HDL
Créez des résultats déterministes de quotient et de reste pour des modules diviseurs non signés et comparez leurs états par cycle.
Contrôler un micrologiciel bit à bit
Validez une routine de division sur une cible dépourvue d’instruction native de division entière sans perdre de précision.
Questions fréquentes
Qu’est-ce que la division binaire restauratrice ?
C’est un algorithme de décalage et de soustraction qui produit un bit de quotient par cycle et restaure le reste partiel lorsque le diviseur ne tient pas.
Le calculateur renvoie-t-il un reste ?
Oui. Il renvoie le quotient binaire et le reste binaire final, toujours inférieur à un diviseur valide non nul.
Puis-je diviser des nombres binaires supérieurs à un entier JavaScript ?
Oui. L’algorithme travaille directement sur des chaînes allant jusqu’à 1024 bits et ne convertit jamais les opérandes en nombres à virgule flottante.
Les nombres binaires signés ou fractionnaires sont-ils acceptés ?
Non. Cette capacité accepte uniquement des entiers binaires non signés. Le signe et l’échelle en virgule fixe exigent des conventions supplémentaires.
Que se passe-t-il si je divise par zéro ?
Vous n'obtenez aucun résultat, car aucun quotient ne satisfait la division quand le diviseur vaut zéro. En revanche, un dividende nul est accepté et donne simplement un quotient nul et un reste nul.
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/elec/binary-division \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"dividend":"110101","divisor":"101"}'const res = await fetch("https://api.kit.forhosting.com/elec/binary-division", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"dividend": "110101",
"divisor": "101"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/binary-division",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"dividend": "110101",
"divisor": "101"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/binary-division", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"dividend":"110101","divisor":"101"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"dividend":"110101","divisor":"101"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/binary-division", 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
{
"dividend": "110101",
"divisor": "101"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.binary_division",
"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.
Limites
max_chars | 1024 |
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
La même routine déterministe alimente l’outil du navigateur et l’API, ce qui convient aux cours de logique numérique, aux exercices corrigés, aux vecteurs de test et aux contrôles d’implémentation.
Définition du quotient et du reste binaires
Un diviseur nul est impossible et déclenche invalid_input.
Lire la trace de division restauratrice
La réponse nomme cette branche subtract_divisor ou restore_remainder et consigne le bit entrant, le reste décalé, le bit du quotient et le reste obtenu. Suivez la colonne du reste pour comprendre chaque choix, ou concaténez les valeurs quotient_bit afin de reconstruire le quotient avant la suppression des zéros initiaux.
Exploiter le résultat pour étudier et tester le matériel
Les champs dividend et divisor présentent les opérandes normalisés, tandis que quotient et remainder donnent le résultat compact. Le champ method désigne la trace comme restoring_division et le tableau ordonné steps fournit les états de chaque cycle pour une fiche d’exercice, un plan de chronogramme ou un test unitaire. Le calcul n’emploie ni réseau, ni hasard, ni stockage, ni horloge ; une entrée identique produit donc toujours le même JSON. Le calcul rapide dans le navigateur est gratuit, et les requêtes API automatisées suivent le tarif publié de $0.002 par élément.
Questions techniques
Que se passe-t-il si le diviseur vaut zéro ?
La requête échoue avec invalid_input, car une division par zéro ne possède aucun résultat valide sous forme de quotient et de reste.
Combien coûte une requête API ?
Le calcul dans le navigateur est gratuit. Chaque élément API réussi utilise le tarif de base publié de $0.002 ; une entrée invalide n’est pas facturée.