ForHosting KIT · Matematica

Complemento a due

Su 8 bit, −5 diventa 11111011 e +5 diventa 00000101. Inserisca un intero con segno e un'ampiezza di parola da 2 a 64 bit e ottenga la sequenza esatta in complemento a due; i valori che non entrano vengono rifiutati, mai ripiegati. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Valore
-5
Bit
8
Ottiene
Binario
11111011
Senza segno
251
Min
-128
Max
127

Il complemento a due è la rappresentazione che i processori moderni usano per gli interi con segno: una stringa di bit a larghezza fissa il cui bit più alto è il segno e i cui bit restanti completano una codifica modulare del valore. Questa calcolatrice di complemento a due accetta un intero con segno e una larghezza di bit, poi restituisce la parola binaria esatta per quella larghezza. I valori non negativi diventano i bit di magnitudine ordinari, riempiti di zeri a sinistra. I valori negativi diventano il residuo dell’intero modulo due elevato alla larghezza, la costruzione classica «inverti e aggiungi uno» insegnata in ogni corso di organizzazione dei calcolatori.

Che cosa significa il complemento a due e come si producono i bit

Il complemento a due è la rappresentazione che quasi ogni CPU usa per gli interi con segno. Per una parola di larghezza w bit l’intervallo rappresentabile è l’intervallo chiuso da meno due elevato a w meno uno fino a due elevato a w meno uno, meno uno. Il bit più significativo è il bit di segno: zero significa un valore non negativo memorizzato come il binario senza segno ordinario di quella magnitudine, riempito a sinistra di zeri fino a esattamente w caratteri.

Un uno nel bit di segno significa un valore negativo. Codificare un intero negativo n equivale a prendere il residuo matematico di n modulo due elevato a w: invertire ogni bit della magnitudine positiva e aggiungere uno, poi conservare esattamente w bit. Quella visione modulare spiega perché sottrarre uno da zero produce una stringa di uni, che si decodifica come meno uno, e perché il valore più negativo in w bit è un uno seguito da w meno uno zeri.

Questa calcolatrice applica quell’identità con aritmetica modulare BigInt così ogni bit è esatto per larghezze da due a sessantaquattro. Non avvolge i valori che traboccano come farebbe un registro hardware: se l’intero con segno non può vivere nella larghezza scelta, la richiesta fallisce invece di produrre in silenzio una parola che appartiene a un altro intero. Chi studia può così controllare i compiti rispetto a una definizione che coincide con i manuali, e l’automazione può fidarsi che un esito di successo sia una codifica legale per la larghezza dichiarata.

Cinque positivo in otto bit è 00000101; cinque negativo in otto bit è 11111011; zero è una stringa di zeri; meno uno è una stringa di uni. Quei quattro punti di riferimento bastano a verificare qualsiasi larghezza successiva con la stessa regola modulare.

Dove un codificatore di complemento a due giustifica l’impiego

Le aule usano una calcolatrice di complemento a due perché chi impara possa convertire valori con segno dei compiti in parole da otto e sedici bit senza invertire a mano un bit di segno e dimenticare il passo di aggiungere uno che distingue il complemento a due dal complemento a uno.

I generatori d’esame necessitano di un oracolo deterministico che rifiuti centoventotto in otto bit come overflow invece di avvolgerlo a meno centoventotto, perché l’avvolgimento è un comportamento hardware che lo studente deve riconoscere come distinto da una codifica legale dell’intero originale. Le revisioni di firmware embedded spesso richiedono un controllo rapido che una costante documentata occupi davvero la larghezza di campo annunciata prima di impacchettarla in un registro, una parola di protocollo o un bitfield di una scheda tecnica.

Chi progetta protocolli confronta la parola restituita con un dump di pacchetto quando un campo con segno è trasmesso bit più significativo per primo. Tenga le richieste piccole, affermi il campo binary nei test e otterrà parole di complemento a due riproducibili per compiti, laboratori e worker di bordo senza allestire una catena di assemblatore propria.

Controlli in aula e compiti

Converta valori con segno del foglio di esercizi in parole di complemento a due da otto o sedici bit e confermi il risultato inverti-e-aggiungi-uno senza una tabella di bit disegnata a mano.

Revisioni di firmware e protocolli

Verifichi che una costante con segno documentata entri davvero nella larghezza di campo annunciata prima di impacchettarla in un registro o in un formato di filo.

Che cosa accade se l’intero non entra nella larghezza di bit?

L’estremo non avvolge. In otto bit l’intervallo legale va da −128 a 127, quindi 128 è un errore e non il pattern di bit di −128.

Come viene codificato un valore negativo?

Come il residuo non negativo dell’intero modulo 2^w, che equivale a invertire i bit di magnitudine e aggiungere uno. Meno cinque in otto bit è 11111011.

Quali larghezze di bit sono supportate?

Qualsiasi larghezza intera da 2 a 64. Le larghezze abituali di didattica e firmware sono 8, 16, 32 e 64, purché il valore resti nell’intervallo di interi sicuri di JavaScript.

Come converto un intero con segno in complemento a due?

Se è positivo, lo si scrive in binario e lo si completa con zeri a sinistra fino all'ampiezza scelta. Se è negativo, si invertono i bit del valore positivo e si aggiunge uno: così −5 diventa 11111011 su 8 bit.

Che differenza c'è tra complemento a uno e complemento a due?

Il complemento a uno si limita a invertire ogni bit del valore positivo; il complemento a due inverte e poi aggiunge uno. È questo passaggio in più che trasforma −5 in 11111011 su 8 bit e rende −1 una fila di uno.

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.

POSThttps://api.kit.forhosting.com/math/twos-complement

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/math/twos-complement \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":-5,"bits":8}'
{
  "value": -5,
  "bits": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.twos_complement",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

min_bits2
max_bits64
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Se l’intero non entra nell’intervallo con segno della larghezza scelta, l’operazione fallisce con invalid_input invece di avvolgersi in silenzio. Le chiamate API riuscite costano $0.002; un ingresso non valido non viene addebitato.

Contratto di ingresso, intervallo legale e come si segnala l’overflow

Il campo value è l’intero con segno da codificare. Frazioni, notazione scientifica, stringhe vuote, Infinity e NaN vengono rifiutati, così una cella di foglio di calcolo difettosa non diventa un pattern di bit errato. Il campo bits è la larghezza della parola come intero da due a sessantaquattro incluso, il che copre le larghezze didattiche abituali int8, int16, int32 e int64 e resta economico da calcolare. Campi assenti, non interi e un bits fuori da due a sessantaquattro falliscono allo stesso modo e non vengono addebitati. Il contratto è deliberatamente fail-closed: avvolgere 128 in 10000000 sarebbe una codifica corretta di meno centoventotto, non di centoventotto, e questo estremo rifiuta di confondere quella distinzione. Invii un oggetto JSON con due campi obbligatori. Può essere un numero JSON o una stringa di cifre decimali con segno più o meno opzionale. Il valore assoluto deve restare nell’intervallo di interi sicuri di JavaScript, così il value ripetuto resta un numero JSON esatto. Si accettano gli alias n, integer e number per value; si accettano width, bit_width e nbits per bits. In caso di successo la risposta ripete value e bits, restituisce binary come una stringa di esattamente bits caratteri zero o uno, restituisce unsigned come lo stesso pattern interpretato come intero non negativo, e restituisce min e max per mostrare l’intervallo legale accanto alla risposta. Esempio: value uguale a meno cinque e bits uguale a otto producono binary 11111011, unsigned duecentocinquantuno, min meno centoventotto e max centoventisette. Se value esce da quell’intervallo, il gestore lancia invalid_input e nomina l’overflow, per esempio segnalando che centoventotto non entra nel complemento a due a otto bit.

Dove un codificatore di complemento a due giustifica l’impiego

Le chiamate API riuscite costano il $0.002 pubblicato; i fallimenti di convalida non consumano saldo; nulla viene memorizzato dopo la risposta.

Valutazione automatica di esami e LMS

Valuti voci di complemento a due con un oracolo deterministico che rifiuta l’overflow come invalid_input invece di avvolgere l’intero in un altro valore.

Come si converte un intero con segno in binario a complemento a due?

Invii l’intero come value e la larghezza della parola come bits (2–64). L’API restituisce una stringa binaria di esattamente quei caratteri 0/1, più la magnitudine senza segno e l’intervallo con segno legale.

Quanto costa la calcolatrice di complemento a due?

Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; un ingresso non valido non viene addebitato.

Leggi la documentazione completa del KIT →