Divisione binaria
Divida due numeri binari senza segno e ottenga quoziente e resto esatti con ogni passaggio di ripristino: 110101 diviso 101 dà 1010 con resto 11. Ogni ciclo mostra lo scorrimento, il confronto e se il divisore è stato sottratto. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Dividendo
- 110101
- Divisore
- 101
- Quoziente
- 1010
- Resto
- 11
Questo calcolatore di divisione binaria divide due interi senza segno in base due e restituisce quoziente e resto binari esatti. Mostra inoltre ogni spostamento, confronto, sottrazione e decisione di ripristino dell’algoritmo classico usato per spiegare l’hardware aritmetico. Inserisca stringhe composte soltanto da zeri e uno, con il prefisso facoltativo 0b; il calcolatore normalizza gli zeri iniziali prima dell’elaborazione. Poiché l’implementazione opera direttamente sulle stringhe di bit senza convertirle in numeri JavaScript, anche gli input grandi rimangono esatti.
Come si definiscono quoziente e resto binari
La divisione binaria segue la stessa identità intera della divisione lunga decimale: il dividendo equivale al divisore moltiplicato per il quoziente, più il resto, e il resto è sempre minore del divisore. Cambiano soltanto le cifre scritte e i loro valori posizionali. Ogni posizione binaria rappresenta una potenza di due, quindi il quoziente può essere costruito un bit alla volta, dal bit più significativo del dividendo a quello meno significativo.
Un bit del quoziente pari a uno indica che il divisore entra nel resto parziale corrente; zero indica che non entra. Consumando l’ultimo bit si ottengono il quoziente accumulato e il resto finale. Il calcolatore accetta solo interi senza segno, così la traccia resta concentrata sull’operazione di grandezza svolta dal divisore hardware.
Gli zeri iniziali vengono rimossi da input e output normalizzati. Un dividendo zero è valido e produce quoziente e resto zero. È ammesso il prefisso 0b, mentre spazi interni, cifre decimali, segni e punti frazionari vengono rifiutati per mantenere un contratto inequivocabile a livello di bit.
Come leggere la traccia della divisione con ripristino
La traccia contiene un ciclo per ciascun bit del dividendo normalizzato. All’inizio del ciclo, il resto corrente viene spostato a sinistra e il bit successivo del dividendo entra nella posizione meno significativa. L’algoritmo confronta poi il resto spostato con il divisore.
Se il divisore entra, lo sottrae, aggiunge uno al quoziente e porta la differenza nel ciclo seguente. Se non entra, la sottrazione tentata sarebbe negativa: l’interpretazione hardware ripristina quindi il precedente resto non negativo e aggiunge zero al quoziente. È una rappresentazione didattica della divisione con ripristino: un circuito ottimizzato può sottrarre in modo speculativo e ripristinare in seguito, mentre questo software deterministico esegue prima il confronto e applica la transizione di stato equivalente.
Poiché la sottrazione lavora su stringhe binarie con prestito esplicito, il calcolo non usa l’aritmetica in virgola mobile e non perde bit bassi con operandi più lunghi di una parola macchina.
Come usare il risultato per studiare e collaudare l’hardware
L’oggetto restituito è pensato sia per le spiegazioni sia per le verifiche automatiche. Chi studia progettazione digitale può confrontare ogni ciclo con i registri di un percorso dati contenente resto, divisore, sottrattore, comparatore, quoziente e controllore. Chi scrive HDL può trasformare una risposta corretta in un vettore atteso per un testbench Verilog o VHDL, verificando anche che il resto finale sia inferiore al divisore.
Gli stessi vettori consentono di convalidare un divisore bit per bit nel firmware di processori privi di un’istruzione nativa di divisione. Ogni operando è limitato a 1024 bit per mantenere la traccia entro limiti certi. Divisione con segno, virgola fissa, arrotondamento e algoritmi non restaurativi o SRT richiedono regole diverse e sono esclusi.
Casi d'uso
Insegnare la divisione con ripristino
Mostri ogni spostamento, sottrazione condizionale, bit del quoziente e resto ripristinato durante una lezione di logica digitale.
Generare vettori di test HDL
Crei quozienti e resti deterministici per moduli divisori senza segno e ne confronti gli stati ciclo per ciclo.
Verificare il firmware bit per bit
Convalidi una routine di divisione su dispositivi privi di istruzione nativa di divisione intera senza perdere precisione.
Domande frequenti
Che cos’è la divisione binaria con ripristino?
È un algoritmo di spostamento e sottrazione che produce un bit del quoziente per ciclo e ripristina il resto parziale quando il divisore non entra.
Il calcolatore restituisce il resto?
Sì. Restituisce il quoziente binario e il resto binario finale, sempre inferiore a un divisore valido diverso da zero.
Posso dividere numeri binari più grandi di un intero JavaScript?
Sì. L’algoritmo opera direttamente su stringhe fino a 1024 bit e non converte mai gli operandi in numeri in virgola mobile.
Sono ammessi numeri binari con segno o frazionari?
No. Questa capacità accetta soltanto interi binari senza segno. La correzione del segno e la scala in virgola fissa richiedono altre convenzioni.
Che cosa succede se divido per zero?
Non ottiene alcun risultato, perché nessun quoziente soddisfa la divisione quando il divisore è zero. Un dividendo zero invece è valido e dà semplicemente quoziente zero e resto zero.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"dividend": "110101",
"divisor": "101"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.binary_division",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 1024 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
La stessa routine deterministica alimenta lo strumento nel browser e l’API, risultando utile per lezioni di logica digitale, esempi svolti, vettori di test e verifiche dell’implementazione.
Come si definiscono quoziente e resto binari
Un divisore zero non è mai valido e genera invalid_input.
Come leggere la traccia della divisione con ripristino
La risposta indica il ramo come subtract_divisor oppure restore_remainder e registra bit in ingresso, resto spostato, bit del quoziente e resto risultante. Segua la colonna del resto per capire ogni scelta, oppure concateni i valori quotient_bit per ricostruire il quoziente prima della normalizzazione.
Come usare il risultato per studiare e collaudare l’hardware
I campi dividend e divisor mostrano gli operandi normalizzati, mentre quotient e remainder forniscono il risultato compatto. Il calcolo non usa rete, casualità, archiviazione o orologio, quindi input identici producono sempre lo stesso JSON. I calcoli rapidi nel browser sono gratuiti; le richieste API automatizzate usano il prezzo base pubblicato di $0.002 per elemento.
Domande tecniche
Che cosa accade se il divisore è zero?
La richiesta termina con invalid_input perché la divisione per zero non possiede un risultato valido di quoziente e resto.
Quanto costa una richiesta API?
Il calcolo nel browser è gratuito. Ogni elemento API riuscito usa il prezzo base pubblicato di $0.002; gli input non validi non vengono addebitati.