Zweierkomplement berechnen
Rechnen Sie in beide Richtungen mit fester Breite: -18 in 8 Bit ist 11101110, und 11101110 mit 8 Bit gelesen ergibt wieder -18, bei Breiten von 2 bis 53 Bit und ohne stillen Überlauf. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Das Zweierkomplement ist die übliche Darstellung vorzeichenbehafteter Ganzzahlen mit fester Breite in Prozessoren, Dateiformaten, Registern und Netzwerkprotokollen. Dieser Konverter arbeitet in beiden Richtungen: Geben Sie eine Ganzzahl und eine Bitbreite ein, um das exakte Binärmuster zu erhalten, oder übergeben Sie ein Binärmuster samt Breite, um die vorzeichenbehaftete Ganzzahl zu ermitteln. Jede Anfrage wird geprüft; unpassende Werte werden nicht stillschweigend umgebrochen. Deshalb eignet sich das Ergebnis zum Lernen, Debuggen, Dokumentieren und Erstellen automatisierter Testdaten, wenn ein einziges Vorzeichenbit die Bedeutung eines ganzen Feldes ändern kann.
Wählen Sie vor der Umwandlung die Breite
Ein Wert im Zweierkomplement ist nur bei bekannter Breite eindeutig. Dieselben abschließenden Bits können unterschiedliche Werte darstellen, wenn sie als Wort mit acht, sechzehn oder zweiunddreißig Bits gelesen werden, denn das linke Bit der gewählten Breite kennzeichnet das Vorzeichen. Wählen Sie zunächst eine Breite von 2 bis 53 Bits und danach die Umwandlungsrichtung.
Für die Umwandlung einer Ganzzahl in Binärdarstellung geben Sie eine vorzeichenbehaftete ganze Zahl ein. Der Konverter prüft den zulässigen Bereich: Er reicht von minus zwei hoch bits minus eins bis zwei hoch bits minus eins, abzüglich eins. Ein Acht-Bit-Wort erlaubt somit Werte von -128 bis 127.
Liegt die Zahl außerhalb, liefert die Anfrage einen Eingabefehler, statt hohe Bits zu entfernen oder einen irreführenden Überlauf zu erzeugen. Dieses strenge Verhalten unterstützt die Prüfung von Registerdefinitionen, Serializer-Grenzen, Übungsaufgaben und Datenlayouts. Ein erfolgreiches Ergebnis enthält stets exakt die angeforderte Zahl an Stellen, einschließlich führender Nullen bei nicht negativen Werten und der erforderlichen führenden Einsen bei negativen Darstellungen fester Breite.
Verstehen Sie Codierung und Decodierung
Bei einer nicht negativen Ganzzahl verwendet die Codierung die gewöhnliche Darstellung zur Basis zwei und ergänzt links Nullen bis zur gewählten Breite. Bei einer negativen Ganzzahl addiert der Konverter den Wert zu zwei hoch Breite und schreibt diesen nicht negativen Rest binär. Diese modulare Definition entspricht dem bekannten manuellen Verfahren, alle Bits des positiven Betrags umzukehren und eins hinzuzufügen; sie vermeidet jedoch Sonderfälle und beschreibt die Mathematik direkt.
Beim Decodieren wird die Regel umgekehrt. Zunächst liest der Konverter die Bitfolge als vorzeichenlosen Wert. Ist das erste Bit null, ist dieser Wert bereits das vorzeichenbehaftete Ergebnis.
Ist es eins, wird zwei hoch Breite abgezogen, um den negativen Wert zu erhalten. Die Binäreingabe darf nur Nullen und Einsen enthalten und muss exakt die angegebene Zeichenanzahl haben. Die Breite wird nie erraten, beim Decodieren wird nichts aufgefüllt und überzählige Stellen werden nicht abgeschnitten.
Dadurch sind Rundläufe vorhersagbar: Jede akzeptierte Ganzzahl ergibt genau ein Muster, dessen Decodierung mit derselben Breite den Ausgangswert wiederherstellt.
Nutzen Sie exakte Darstellungen in der Praxis
Diese Fähigkeit hilft überall dort, wo ein lesbarer Dezimalwert mit einem hardwarenahen vorzeichenbehafteten Feld verglichen werden muss. Firmware-Entwickler können Sensordifferenzen, Statusregister und Protokollbeispiele prüfen, bevor sie diese in die Dokumentation übernehmen. Anwendungsentwickler können Referenzdaten für das Packen vorzeichenbehafteter Bytes erzeugen, Grenzfälle bestätigen und klären, ob ein unerwartet großer vorzeichenloser Wert tatsächlich eine negative Zahl im Zweierkomplement darstellt.
Lernende können ihre Rechnung anhand des exakten Musters fester Breite prüfen, statt eine verkürzte Binärform zu sehen, die die Vorzeichenerweiterung verbirgt. Die Berechnung ist deterministisch, läuft lokal im Parser und verwendet weder Modell noch externen Dienst, Zufall oder Uhr. Halten Sie die angegebene Breite mit dem untersuchten Speicherformat konsistent.
Definiert ein Protokoll ein Zwölf-Bit-Feld, decodieren Sie alle zwölf Stellen einschließlich führender Nullen oder Einsen.
Anwendungsfälle
Vorzeichenbehaftete Registerwerte prüfen
Wandeln Sie dokumentierte Dezimalgrenzen und Beispiele für Hardware- und Firmware-Reviews in Bitmuster exakter Breite um.
Testdaten für Serializer erstellen
Erzeugen Sie stabile Binärergebnisse für positive, negative, minimale, maximale und Nullwerte.
Protokollmitschnitte decodieren
Deuten Sie ein Binärfeld fester Breite als die in der Protokollspezifikation vorgesehene vorzeichenbehaftete Ganzzahl.
Häufige Fragen
Welcher Bereich passt in eine bestimmte Breite?
Eine Breite von w Bits speichert vorzeichenbehaftete Ganzzahlen von -2^(w-1) bis 2^(w-1)-1.
Warum muss die Binäreingabe exakt der Breite entsprechen?
Das erste Bit dieser Breite legt das Vorzeichen fest; ein Erraten oder stilles Auffüllen könnte daher das Ergebnis verändern.
Was passiert, wenn eine Zahl nicht in die Breite passt?
Sie erhalten eine klare Fehlermeldung statt eines übergelaufenen oder abgeschnittenen Ergebnisses. Ein 8-Bit-Wort nimmt zum Beispiel nur -128 bis 127 an, ein Wert außerhalb wird abgelehnt, statt seine hohen Bits zu verlieren.
Wie wird eine negative Zahl codiert?
Der Wert wird zu zwei hoch Breite addiert und das Ergebnis binär geschrieben. Das entspricht dem Invertieren aller Bits der positiven Zahl plus eins, weshalb -18 in 8 Bit zu 11101110 wird.
Wie wird ein Bitmuster wieder zur Zahl?
Die Bits werden zuerst als vorzeichenlose Zahl gelesen. Ist das linke Bit null, ist das schon die Antwort; ist es eins, wird zwei hoch Breite abgezogen, sodass 11101110 mit 8 Bit wieder -18 ergibt.
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/dev2/two-complement-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"integer_to_binary","bits":8,"integer":-18,"binary":"11101110"}'const res = await fetch("https://api.kit.forhosting.com/dev2/two-complement-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "integer_to_binary",
"bits": 8,
"integer": -18,
"binary": "11101110"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/two-complement-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "integer_to_binary",
"bits": 8,
"integer": -18,
"binary": "11101110"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/two-complement-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"integer_to_binary","bits":8,"integer":-18,"binary":"11101110"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"integer_to_binary","bits":8,"integer":-18,"binary":"11101110"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/two-complement-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"mode": "integer_to_binary",
"bits": 8,
"integer": -18,
"binary": "11101110"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.two_complement_convert",
"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 | 53 |
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
Nutzen Sie exakte Darstellungen in der Praxis
Zur Automatisierung senden Sie Modus, Breite und das betreffende Ganzzahl- oder Binärfeld über die API; jedes erfolgreiche Element nutzt den veröffentlichten Grundpreis von $0.002.
Technische Fragen
Was geschieht, wenn die Ganzzahl nicht hineinpasst?
Die Umwandlung schlägt mit invalid_input fehl und nennt den zulässigen Bereich. Der Wert wird weder umgebrochen noch abgeschnitten.
Ist die Umwandlung in beiden Richtungen möglich?
Ja. Mit integer_to_binary codieren Sie eine Ganzzahl, mit binary_to_integer decodieren Sie ein Muster fester Breite.
Was kostet eine API-Anfrage?
Jedes erfolgreiche API-Element nutzt den veröffentlichten Grundpreis von $0.002. Ungültige Eingaben werden vor einem Ergebnis abgewiesen.