Vorzeichen-Betrag-Rechner: Binärwerte kodieren und dekodieren
Dieser Rechner für die Vorzeichen-Betrag-Darstellung wandelt eine vorzeichenbehaftete Dezimalzahl in ein Binärmuster fester Breite um und dekodiert das Muster wieder als Zahl.
Im Browser ausführen – kostenlos
Anders als beim Zweierkomplement ist das höchstwertige Bit ausschließlich für das Vorzeichen reserviert; alle übrigen Bits speichern den Betrag. Wählen Sie eine Operation und geben Sie Wert sowie gesamte Bitbreite an. Sie erhalten Vorzeichenbit, Betragsbits, numerischen Betrag, vollständiges Muster und dekodierten Wert. Das Ergebnis kennzeichnet außerdem die besondere Darstellung der negativen Null, die dieses Zahlensystem zulässt.
Eine vorzeichenbehaftete Ganzzahl kodieren
Wählen Sie „Kodieren“, geben Sie im Wertefeld eine Ganzzahl zur Basis 10 ein und legen Sie eine Gesamtbreite zwischen 2 und 53 Bit fest. Der Rechner trennt zunächst das Vorzeichen vom absoluten Betrag. Bei einer negativen Eingabe lautet das führende Vorzeichenbit 1; bei null und positiven Eingaben lautet es 0. Anschließend wird der Betrag binär umgewandelt und links mit Nullen aufgefüllt, bis er genau ein Bit weniger als die ausgewählte Breite belegt. Vorzeichenbit und aufgefüllter Betrag bilden gemeinsam das endgültige Muster. Der Betrag 37 lautet beispielsweise auf sieben Bit 0100101, sodass -37 auf acht Bit zu 10100101 wird. Die Vorzeichenstelle kann weder den positiven noch den negativen Bereich vergrößern. Bei einer Breite w ist der größte zulässige Betrag 2 hoch w minus 1 und anschließend minus 1. Eingaben außerhalb dieses symmetrischen Bereichs werden abgewiesen, statt abgeschnitten, zyklisch umgebrochen oder unbemerkt verändert zu werden. Dadurch eignet sich das Ergebnis zuverlässig für Aufgaben, Dokumentationen und Testvektoren.
Ein Binärmuster dekodieren
Wählen Sie „Dekodieren“ und geben Sie einen Binärwert ein, der exakt so viele Stellen wie die festgelegte Bitbreite enthält. Führende Nullen sind relevant; deshalb wird das Muster als Text und nicht als Dezimalzahl verarbeitet. Die erste Stelle dient ausschließlich als Vorzeichen: 0 bedeutet nicht negativ, 1 bedeutet negativ. Die restlichen Stellen werden als vorzeichenloser Binärbetrag gelesen. Ist dieser Betrag nicht null, wird das Vorzeichen angewendet, um die dekodierte dezimale Ganzzahl zu erhalten. Die Ausgabe bewahrt das ursprüngliche Muster und trennt zusätzlich sign_bit, magnitude_bits und magnitude, damit Sie jeden Schritt einzeln prüfen können. Ein Muster wie 10100101 besitzt somit das Vorzeichenbit 1, die Betragsbits 0100101, den Betrag 37 und den Dezimalwert -37. Der Rechner verlangt, dass deklarierte Breite und tatsächliche Musterlänge übereinstimmen. Leerzeichen, Präfixe wie 0b, Trennzeichen sowie andere Ziffern als 0 oder 1 werden abgewiesen. So entsteht aus einer mehrdeutigen Bitfolge kein scheinbar gültiges Ergebnis.
Wertebereich und negative Null verstehen
Die Vorzeichen-Betrag-Darstellung ist leicht lesbar, weil das Vorzeichen getrennt gespeichert wird. Diese Anordnung hat jedoch andere Folgen als das Zweierkomplement. Der verfügbare Zahlenbereich ist symmetrisch: Ein Acht-Bit-Muster stellt gewöhnliche Werte von -127 bis 127 dar, nicht von -128 bis 127. Außerdem existieren zwei Kodierungen der numerischen Null. Ausschließlich gesetzte Nullbits bedeuten positive Null; ein Vorzeichenbit 1 mit ausschließlich null gesetzten Betragsbits bedeutet negative Null. Beide werden zum Zahlenwert 0 dekodiert. Daher hält das Feld negative_zero ausdrücklich fest, welche Darstellung eingegeben wurde. Diese Unterscheidung ist bei historischen Computerformaten, Vorzeichenkonzepten für Gleitkommazahlen, Lehrbeispielen oder Hardwareaufgaben wichtig, bei denen das Bitmuster selbst zählt. Der Rechner wandelt nie stillschweigend zwischen Vorzeichen-Betrag und Zweierkomplement um. Verwendet ein Quellsystem eine andere vorzeichenbehaftete Darstellung, bestimmen Sie diese vor der Interpretation. Behalten Sie für zuverlässige Vergleiche innerhalb einer Berechnungsreihe dieselbe Bitbreite bei: Auffüllen verändert das vollständige Muster, jedoch weder Betrag noch dekodierte Ganzzahl.
Anwendungsfälle
Aufgaben zur Digitaltechnik prüfen
Prüfen Sie Vorzeichenbits, Betragsauffüllung, darstellbare Bereiche und dekodierte Antworten bei vorgegebener Breite.
Deterministische Testvektoren erstellen
Erzeugen Sie exakte Vorzeichen-Betrag-Muster und strukturierte Zwischenwerte für Kodierer- oder Dekodierertests.
Historische Zahlenformate untersuchen
Deuten Sie gespeicherte Bitmuster, ohne den wichtigen Unterschied zwischen positiver und negativer Null zu verlieren.
Häufige Fragen
Was kostet eine Berechnung über die API?
Jede API-Anfrage kostet $0.002. Dieselbe deterministische Berechnung steht auch kostenlos in Ihrem Browser bereit.
Welche Bitbreiten werden unterstützt?
Sie können jede Gesamtbreite zwischen 2 und 53 Bit einschließlich des Vorzeichenbits wählen.
Warum ist der Bereich kleiner als beim Zweierkomplement?
Ein Bit speichert nur das Vorzeichen, die übrigen den Betrag; deshalb beträgt der maximale Betrag bei acht Bit 127.
Wie wird die negative Null behandelt?
Ein Muster mit Vorzeichenbit 1 und vollständig leerem Betrag wird numerisch als 0 dekodiert und gibt negative_zero als wahr zurück.
Darf ich ein 0b-Präfix oder Leerzeichen eingeben?
Nein. Beim Dekodieren muss der Wert genau die verlangte Anzahl Binärstellen ohne Präfix, Leerzeichen oder Trennzeichen enthalten.
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/elec/signed-magnitude \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"operation":"encode","value":"-37","bit_width":8}'const res = await fetch("https://api.kit.forhosting.com/elec/signed-magnitude", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"operation": "encode",
"value": "-37",
"bit_width": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/signed-magnitude",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"operation": "encode",
"value": "-37",
"bit_width": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/signed-magnitude", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"operation":"encode","value":"-37","bit_width":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"operation":"encode","value":"-37","bit_width":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/signed-magnitude", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"operation": "encode",
"value": "-37",
"bit_width": 8
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.signed_magnitude",
"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.
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. |