Zweierkomplement
In 8 Bit wird −5 zu 11111011 und +5 zu 00000101. Geben Sie eine ganze Zahl mit Vorzeichen und eine Wortbreite von 2 bis 64 Bit ein und erhalten Sie ihr exaktes Zweierkomplement; was nicht passt, wird abgelehnt statt umgebrochen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Wert
- -5
- Bits
- 8
- Binär
- 11111011
- Vorzeichenlos
- 251
- Min
- -128
- Max
- 127
Das Zweierkomplement ist die Darstellung, die moderne Prozessoren für vorzeichenbehaftete Ganzzahlen nutzen: eine Bitkette fester Breite, deren höchstes Bit das Vorzeichen ist und deren restliche Bits eine modulare Kodierung des Werts vollenden. Dieser Zweierkomplement-Rechner nimmt eine vorzeichenbehaftete Ganzzahl und eine Bitbreite entgegen und liefert das genaue Binärwort für diese Breite. Nichtnegative Werte werden zu den gewöhnlichen Betragsbits, links mit Nullen aufgefüllt. Negative Werte werden zum Rest der Ganzzahl modulo zwei hoch der Breite — die vertraute Konstruktion „invertieren und eins addieren“, die jeder Kurs zur Rechnerorganisation lehrt.
Was Zweierkomplement bedeutet und wie die Bits entstehen
Das Zweierkomplement ist die Darstellung, die nahezu jede CPU für vorzeichenbehaftete Ganzzahlen nutzt. Für ein Wort der Breite w Bit ist der darstellbare Bereich das abgeschlossene Intervall von minus zwei hoch w minus eins bis zwei hoch w minus eins, minus eins. Das höchstwertige Bit ist das Vorzeichenbit: Null bedeutet einen nichtnegativen Wert, gespeichert als gewöhnliches vorzeichenloses Binär der Betragsgröße, links mit Nullen auf genau w Zeichen aufgefüllt.
Eine Eins im Vorzeichenbit bedeutet einen negativen Wert. Eine negative Ganzzahl n zu kodieren ist dasselbe wie den mathematischen Rest von n modulo zwei hoch w zu nehmen: jedes Bit des positiven Betrags invertieren, eins addieren und genau w Bits behalten. Diese modulare Sicht erklärt, warum das Subtrahieren von eins von null eine Kette aus Einsen ergibt, die als minus eins dekodiert wird, und warum der negativste Wert in w Bits eine Eins gefolgt von w minus eins Nullen ist.
Dieser Rechner setzt jene Identität mit modularer BigInt-Arithmetik um, sodass jedes Bit für Breiten von zwei bis vierundsechzig exakt ist. Er umwickelt überlaufende Werte nicht so, wie es ein Hardware-Register täte: kann die vorzeichenbehaftete Ganzzahl in der gewählten Breite nicht leben, scheitert die Anfrage statt still ein falsches Wort zu einem anderen Integer zu liefern. Studierende können Hausaufgaben daher an einer Definition prüfen, die Lehrbüchern entspricht, und Automatisierung kann einem Erfolg als legale Kodierung für die angegebene Breite vertrauen.
Plus fünf in acht Bits ist 00000101; minus fünf in acht Bits ist 11111011; null ist eine Kette aus Nullen; minus eins ist eine Kette aus Einsen. Diese vier Orientierungspunkte genügen, jede spätere Breite nach derselben modularen Regel zu prüfen.
Wo ein Zweierkomplement-Kodierer seinen Nutzen verdient
Unterrichtsräume nutzen einen Zweierkomplement-Rechner, damit Lernende vorzeichenbehaftete Hausaufgabenwerte in Acht- und Sechzehn-Bit-Wörter wandeln können, ohne ein Vorzeichenbit von Hand umzuklappen und den Plus-eins-Schritt zu vergessen, der Zweierkomplement vom Einerkomplement unterscheidet. Prüfungsgeneratoren brauchen ein deterministisches Orakel, das einhundertachtundzwanzig in acht Bits als Überlauf ablehnt statt nach minus einhundertachtundzwanzig umzuwickeln, denn Umwickeln ist ein Hardwareverhalten, das Studierende als verschieden von einer legalen Kodierung der ursprünglichen Ganzzahl erkennen müssen.
Eingebettete Firmware-Prüfungen brauchen oft eine schnelle Kontrolle, dass eine dokumentierte Konstante wirklich die beworbene Feldbreite einnimmt, bevor sie in ein Register, ein Protokollwort oder ein Bitfeld eines Datenblatts gepackt wird. Protokollentwerfende vergleichen das gelieferte Wort mit einem Paketauszug, wenn ein vorzeichenbehaftetes Feld höchstwertiges Bit zuerst übertragen wird. Halten Sie Anfragen klein, prüfen Sie das Feld binary in Tests, und Sie erhalten reproduzierbare Zweierkomplement-Wörter für Hausaufgaben, Labore und Rand-Worker, ohne eine eigene Assemblerkette aufzustellen.
Anwendungsfälle
Unterrichts- und Hausaufgabenprüfungen
Wandeln Sie vorzeichenbehaftete Übungsblattwerte in Acht- oder Sechzehn-Bit-Zweierkomplementwörter und bestätigen Sie das Invertieren-und-eins-addieren ohne handgezeichnete Bittabelle.
Firmware- und Protokollprüfungen
Prüfen Sie, dass eine dokumentierte vorzeichenbehaftete Konstante wirklich in die beworbene Feldbreite passt, bevor Sie sie in ein Register oder ein Drahtformat packen.
Häufige Fragen
Was geschieht, wenn die Ganzzahl nicht in die Bitbreite passt?
Der Endpunkt umwickelt nicht. Für acht Bits gilt der Bereich −128 bis 127, daher ist 128 ein Fehler und nicht das Bitmuster von −128.
Wie wird ein negativer Wert kodiert?
Als nichtnegativer Rest der Ganzzahl modulo 2^w, gleichbedeutend mit Invertieren der Betragsbits und Addieren von eins. Minus fünf in acht Bits ist 11111011.
Welche Bitbreiten werden unterstützt?
Jede ganzzahlige Breite von 2 bis 64. Übliche Lehr- und Firmwarebreiten sind 8, 16, 32 und 64, sofern der Wert im sicheren Ganzzahlbereich von JavaScript bleibt.
Wie wandle ich eine Ganzzahl mit Vorzeichen ins Zweierkomplement um?
Ist sie positiv, schreiben Sie sie binär und füllen links mit Nullen bis zur gewählten Breite auf. Ist sie negativ, invertieren Sie die Bits des positiven Werts und addieren eins: So wird −5 in 8 Bit zu 11111011.
Was unterscheidet das Einerkomplement vom Zweierkomplement?
Das Einerkomplement invertiert nur jedes Bit des positiven Werts, das Zweierkomplement invertiert und addiert danach eins. Genau dieser Zusatzschritt macht aus −5 in 8 Bit die 11111011 und aus −1 eine Reihe von Einsen.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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}'const res = await fetch("https://api.kit.forhosting.com/math/twos-complement", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": -5,
"bits": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/twos-complement",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": -5,
"bits": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/twos-complement", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":-5,"bits":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":-5,"bits":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/twos-complement", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"value": -5,
"bits": 8
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.twos_complement",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
min_bits | 2 |
max_bits | 64 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Passt die Ganzzahl nicht in den vorzeichenbehafteten Bereich der gewählten Breite, scheitert die Aufgabe mit invalid_input statt still zu umwickeln. Erfolgreiche API-Aufrufe kosten $0.002; ungültige Eingaben werden nicht berechnet.
Eingabevertrag, zulässiger Bereich und wie Überlauf gemeldet wird
Brüche, wissenschaftliche Notation, leere Ketten, Infinity und NaN werden abgelehnt, damit eine schlechte Tabellenzelle kein falsches Bitmuster wird. Fehlende Felder, Nicht-Ganzzahlen und ein bits außerhalb von zwei bis vierundsechzig scheitern ebenso und werden nicht berechnet. Der Vertrag ist bewusst fail-closed: 128 nach 10000000 umzuwickeln wäre eine korrekte Kodierung von minus einhundertachtundzwanzig, nicht von einhundertachtundzwanzig, und dieser Endpunkt weigert sich, diese Unterscheidung zu verwischen. Senden Sie ein JSON-Objekt mit zwei Pflichtfeldern. Das Feld value ist die vorzeichenbehaftete Ganzzahl, die kodiert werden soll. Es darf eine JSON-Zahl oder eine Dezimalziffernkette mit optionalem Plus- oder Minuszeichen sein. Der Absolutwert muss im sicheren Ganzzahlbereich von JavaScript bleiben, damit das zurückgegebene value eine exakte JSON-Zahl bleibt. Das Feld bits ist die Wortbreite als Ganzzahl von zwei bis vierundsechzig einschließlich; das deckt die üblichen Lehrbreiten int8, int16, int32 und int64 ab und bleibt günstig zu berechnen. Alias n, integer und number werden für value akzeptiert; width, bit_width und nbits für bits. Bei Erfolg wiederholt die Antwort value und bits, liefert binary als Kette aus genau bits Zeichen Null oder Eins, liefert unsigned als dasselbe Muster gelesen als nichtnegative Ganzzahl und liefert min sowie max, damit Aufrufende den zulässigen Bereich neben der Antwort zeigen können. Beispiel: value minus fünf und bits acht ergeben binary 11111011, unsigned zweihunderteinundfünfzig, min minus einhundertachtundzwanzig und max einhundertsiebenundzwanzig.
Wo ein Zweierkomplement-Kodierer seinen Nutzen verdient
Erfolgreiche API-Aufrufe kosten das veröffentlichte $0.002; Validierungsfehler werden nicht berechnet; nach der Antwort wird nichts gespeichert.
Integrationsbeispiele
Automatische Prüfungs- und LMS-Bewertung
Bewerten Sie Zweierkomplement-Aufgaben mit einem deterministischen Orakel, das Überlauf als invalid_input ablehnt statt die Ganzzahl in einen anderen Wert umzuwickeln.
Technische Fragen
Wie wandelt man eine vorzeichenbehaftete Ganzzahl ins Zweierkomplement-Binär?
Senden Sie die Ganzzahl als value und die Wortbreite als bits (2–64). Die API liefert eine Binärkette aus genau so vielen 0/1-Zeichen sowie den vorzeichenlosen Betrag und den zulässigen vorzeichenbehafteten Bereich.
Was kostet der Zweierkomplement-Rechner?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 je erfolgreichem Aufruf; ungültige Eingaben werden nicht berechnet.