ForHosting KIT · Strumenti per sviluppatori

Calcolatore segno e modulo: codifica e decodifica

Questo calcolatore per la rappresentazione in segno e modulo converte un intero decimale con segno in una sequenza binaria a larghezza fissa e riconverte la sequenza in un numero.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Diversamente dal complemento a due, riserva il bit più significativo esclusivamente al segno e utilizza tutti i bit rimanenti per il valore assoluto. Selezioni un’operazione, indichi il valore e la larghezza totale in bit: otterrà il bit di segno, i bit del modulo, il modulo numerico, la sequenza completa e il valore decodificato. Il risultato identifica inoltre la speciale rappresentazione dello zero negativo consentita da questo sistema numerico.

Come codificare un intero con segno

Selezioni la codifica, inserisca un intero in base 10 nel campo del valore e scelga una larghezza totale compresa tra 2 e 53 bit. Il calcolatore separa innanzitutto il segno dal modulo. Un valore negativo produce un bit di segno iniziale pari a 1, mentre zero e valori positivi producono un bit iniziale pari a 0. Successivamente converte il modulo in binario e aggiunge zeri a sinistra finché il valore occupa esattamente un bit in meno rispetto alla larghezza selezionata. Il bit di segno e il modulo completato vengono uniti nella sequenza finale. Per esempio, il modulo 37 è 0100101 su sette bit; pertanto -37 su otto bit diventa 10100101. La posizione del segno non può ampliare l’intervallo positivo o negativo. Con una larghezza w, il massimo modulo ammesso è 2 elevato a w meno 1, e poi meno 1. I valori esterni a questo intervallo simmetrico vengono rifiutati anziché troncati, riportati ciclicamente nell’intervallo o modificati senza avviso. Il risultato è quindi adatto a esercizi, documentazione e vettori di prova.

Come decodificare una sequenza binaria

Selezioni la decodifica e inserisca un valore binario con un numero di cifre esattamente uguale alla larghezza scelta. Gli zeri iniziali sono significativi, quindi la sequenza viene acquisita come testo e non come numero decimale. La prima cifra viene interpretata soltanto come segno: 0 indica un valore non negativo, mentre 1 indica un valore negativo. Le cifre restanti vengono lette come modulo binario senza segno. Se il modulo non è zero, viene applicato il segno per ottenere l’intero decimale decodificato. L’output conserva la sequenza originale e separa sign_bit, magnitude_bits e magnitude, consentendo a Lei di verificare ogni fase in modo indipendente. La sequenza 10100101, per esempio, ha bit di segno 1, bit del modulo 0100101, modulo 37 e valore decimale -37. Il calcolatore richiede che la larghezza dichiarata coincida con la lunghezza effettiva. Rifiuta spazi, prefissi come 0b, separatori e cifre diverse da 0 o 1, evitando risultati apparentemente validi ottenuti da sequenze ambigue.

Comprendere l’intervallo e lo zero negativo

La rappresentazione in segno e modulo è facile da leggere perché memorizza il segno separatamente, ma questa struttura ha conseguenze diverse dal complemento a due. L’intervallo numerico disponibile è simmetrico: una sequenza di otto bit rappresenta i valori ordinari da -127 a 127, non da -128 a 127. Esistono inoltre due codifiche dello zero numerico. Una sequenza composta interamente da zeri rappresenta lo zero positivo; un bit di segno pari a 1 seguito esclusivamente da bit del modulo pari a zero rappresenta lo zero negativo. Entrambe vengono decodificate nel valore numerico 0, perciò il campo negative_zero registra esplicitamente quale rappresentazione è stata fornita. La distinzione è utile nell’analisi di formati informatici storici, concetti di segno in virgola mobile, esempi didattici o esercizi hardware in cui conta la sequenza stessa. Il calcolatore non converte mai implicitamente tra segno e modulo e complemento a due. Se il sistema di origine utilizza un’altra rappresentazione con segno, la identifichi prima di interpretare i bit. Per confronti affidabili, mantenga la stessa larghezza in tutti i calcoli: il riempimento cambia la sequenza completa, ma non il modulo né l’intero decodificato.

Verificare esercizi di logica digitale

Controlli bit di segno, riempimento del modulo, intervalli rappresentabili e risposte decodificate a una larghezza definita.

Creare vettori di prova deterministici

Generi sequenze esatte in segno e modulo e valori intermedi strutturati per testare codificatori o decodificatori.

Esaminare formati numerici legacy

Interpreti sequenze memorizzate conservando la distinzione significativa tra zero positivo e zero negativo.

Quanto costa un calcolo tramite API?

Ogni richiesta API costa $0.002. Lo stesso calcolo deterministico è disponibile gratuitamente anche nel Suo browser.

Quali larghezze in bit sono supportate?

Può scegliere qualsiasi larghezza totale compresa tra 2 e 53 bit, incluso il bit di segno.

Perché l’intervallo è minore rispetto al complemento a due?

Un bit memorizza soltanto il segno e gli altri il modulo; pertanto, su otto bit il modulo massimo è 127.

Come viene gestito lo zero negativo?

Una sequenza con bit di segno 1 e modulo interamente nullo viene decodificata numericamente come 0 e restituisce negative_zero come vero.

Posso inserire il prefisso 0b o degli spazi?

No. Per la decodifica, il valore deve contenere esattamente il numero richiesto di cifre binarie, senza prefissi, spazi o separatori.

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/elec/signed-magnitude

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/elec/signed-magnitude \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"operation":"encode","value":"-37","bit_width":8}'
{
  "operation": "encode",
  "value": "-37",
  "bit_width": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "elec.signed_magnitude",
  "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.

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.

Leggi la documentazione completa del KIT →