Dezimal-Festkomma-Umrechner
Machen Sie aus einer Dezimalzahl die Ganzzahl, die im Festkommaformat Q.n gespeichert wird: 0,1 mit 8 Nachkommabits speichert 26, was eigentlich 0,1015625 bedeutet, ein Fehler von 0,0015625. Für Firmware, DSP und FPGA. 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
- 0,1
- Nachkommabits
- 8
- Rundung
- Nearest
- Q-Format
- Q.8
- Skala
- 256
- Auflösung
- 0,00390625
Wer eine Entwurfskonstante, einen Filterkoeffizienten oder einen Sensorwert umwandelt, braucht die gespeicherte Ganzzahl, den Rekonstruktionsfehler nach dem Runden und die Auflösung zwei hoch minus n — keinen hexadezimalen Gleitkomma-Dump. Dieser Dezimal-zu-Festkomma-Umrechner nimmt einen reellen Dezimalwert und eine Nachkommabitanzahl n entgegen, multipliziert mit zwei hoch n, rastet mit einem dokumentierten Rundungsmodus auf eine Ganzzahl ein und liefert den gespeicherten Code, die rekonstruierte reelle Zahl, den vorzeichenbehafteten Rundungsfehler und die Einheit der letzten Stelle jenes Q.n-Rasters.
Was das Q-Format bedeutet und wie die gespeicherte Ganzzahl entsteht
Das Q-Format, oft Q.n oder Qn geschrieben, ist die Konvention in Texas-Instruments-Headern, ARM CMSIS-DSP und zahllosen FPGA-Toolchains für eine binäre Festkommazahl mit n Bits rechts vom impliziten Binärpunkt. Der reelle Wert, den eine gespeicherte Ganzzahl I darstellt, ist I geteilt durch zwei hoch n, sodass der Rasterabstand — die Auflösung oder Einheit der letzten Stelle dieses Formats — genau zwei hoch minus n beträgt.
Ein Dezimalwert x zu kodieren heißt daher, x mal zwei hoch n zu berechnen und auf eine Ganzzahl zu runden; das Dekodieren ist eine einzige Division durch dieselbe Skala. Jeder darstellbare Wert teilt dieselbe absolute Schrittweite, weshalb Audiocodecs, Motorregelkreise und Nachschlagetabellen das Format bevorzugen, wenn sie deterministisches Runden und günstige ganzzahlige Multiply-Accumulates brauchen. Suchphrasen wie Dezimal zu Festkomma Umrechner, Q-Format-Umrechner, Q15-Umrechner und Float nach Q31 umwandeln beschreiben genau diese Aufgabe: eine menschliche Dezimalzahl nehmen, n wählen und die gespeicherte Ganzzahl plus die durch das Runden entstandene Verschiebung zurücklesen.
Dieser Endpunkt setzt genau diesen Vertrag um und sonst nichts. Eine klassische Prüfung ist das Dezimal-Zehntel mit acht Nachkommabits: die Skala ist zweihundertsechsundfünfzig, nearest-Runden speichert sechsundzwanzig, der rekonstruierte Wert ist sechsundzwanzig durch zweihundertsechsundfünfzig, und der vorzeichenbehaftete Rundungsfehler ist die Differenz zu einem Zehntel — genau das Dreierpaket, das diese Seite zeigen soll.
Eingabevertrag, Rundungsmodi und Antwortfelder
Fehlende Felder, leere Zeichenketten, nichtendliche Werte, ein nicht ganzzahliges n oder ein n außerhalb von null bis zweiundfünfzig scheitern ebenfalls, und diese Fehler werden nicht berechnet. Verlässt das Produkt aus value und zwei hoch n den sicheren Ganzzahlbereich, wird die Aufgabe abgelehnt, statt leise niedrige Bits zu verlieren. Kombinieren Sie die Antwort mit Ihrer eigenen Wortbreitenprüfung, wenn Sie wissen müssen, ob stored in ein vorzeichenbehaftetes Sechzehn- oder Zweiunddreißig-Bit-Register passt; dieser Endpunkt nimmt keine Gesamtbitbreite an, daher ist die Hex-Form eine vorzeichenbehaftete Magnitude, nicht das Zweierkomplement eines versteckten Behälters.
Wo ein Q-Format-Umrechner seinen Nutzen bringt
Firmware-Autoren nutzen einen Dezimal-zu-Festkomma-Umrechner, wenn sie einen Filtertap, eine PID-Verstärkung oder eine Einheitenumrechnung in einen Header einfügen und die genaue Ganzzahl brauchen, die in einer Q15- oder Q31-Variablen stehen wird. FPGA- und HDL-Bänke brauchen dieselbe Zahl, damit der Testbench-Stimulus zum RTL-Datenpfad passt, der niemals eine Gleitkommazahl sieht. Spiel- und Audiowerkzeuge legen normalisierte Samples und Animationsgewichte auf ein festes Raster, bevor sie sie in ein binäres Asset packen, und wollen den Rundungsfehler neben dem Code gedruckt sehen, damit eine Künstlerin erkennt, ob acht Nachkommabits reichen.
Unterricht, der Rechnerarithmetik lehrt, braucht ein deterministisches Orakel, das Auflösung und Fehler gemeinsam zeigt, statt eines vagen «mit zweihundertsechsundfünfzig multiplizieren und runden».
Anwendungsfälle
Firmware-Konstanten und DSP-Taps
Machen Sie aus einer Entwurfsdezimalzahl die Q15- oder Q.8-Ganzzahl, die in einen Header gehört, und behalten Sie den Rundungsfehler neben dem gespeicherten Code zur Prüfung.
FPGA- und HDL-Testbänke
Erzeugen Sie denselben Festkomma-Stimulus, den das RTL sieht, mit einer ausdrücklichen Auflösung von zwei hoch minus n, damit Scoreboards ein ulp tolerieren.
Rechnerarithmetik im Unterricht
Zeigen Sie Lernenden die gespeicherte Ganzzahl, die rekonstruierte reelle Zahl und den vorzeichenbehafteten Fehler für jedes n, einschließlich des klassischen Zehntel-Beispiels, das im Binären nicht exakt ist.
Häufige Fragen
Welche Auflösung hat eine Q.n-Zahl?
Die Auflösung ist genau 2^-n: der Schritt zwischen zwei benachbarten gespeicherten Ganzzahlen.
Welchen Rundungsmodus sollte man wählen?
Der gewählte Modus wird in der Antwort wiederholt.
Warum lässt sich ein Zehntel nicht exakt speichern?
0.1 ist keine dyadische rationale Zahl. Mit acht Nachkommabits ist die nächste gespeicherte Ganzzahl 26, die sich als 26/256 = 0.1015625 rekonstruiert.
Wie wandle ich eine Dezimalzahl in Q15 um?
Wählen Sie 15 Nachkommabits. Das Werkzeug multipliziert Ihre Dezimalzahl mit zwei hoch 15, rundet auf eine Ganzzahl und zeigt den gespeicherten Code, den tatsächlich dargestellten Wert und den Rundungsfehler, fertig zum Einfügen in die Firmware.
Wie viele Nachkommabits kann ich höchstens verwenden?
Bis zu 52. Die Anzahl muss eine ganze Zahl von 0 bis 52 sein, und verlässt der Wert mal zwei hoch diese Zahl den sicheren Ganzzahlbereich, wird die Umrechnung abgelehnt, statt still die unteren Bits zu verlieren.
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/dev/decimal-to-fixed-point \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":0.1,"fractional_bits":8}'const res = await fetch("https://api.kit.forhosting.com/dev/decimal-to-fixed-point", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 0.1,
"fractional_bits": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/decimal-to-fixed-point",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 0.1,
"fractional_bits": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/decimal-to-fixed-point", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":0.1,"fractional_bits":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":0.1,"fractional_bits":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/decimal-to-fixed-point", 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": 0.1,
"fractional_bits": 8
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.decimal_to_fixed_point",
"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
max_fractional_bits | 52 |
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
Eingebettete Firmware, DSP-Kerne, FPGA-Datenpfade und Spiel-Engines speichern viele Signale weiterhin als Festkomma-Ganzzahlen im Q-Format statt als IEEE-754-Gleitkommazahlen: eine gewählte Anzahl Bits steht rechts von einem impliziten Binärpunkt, sodass jede gespeicherte Ganzzahl ein Vielfaches einer festen Auflösung ist.
Was das Q-Format bedeutet und wie die gespeicherte Ganzzahl entsteht
Das ist kein IEEE-754-Gleitkomma: es gibt kein Exponentenfeld, keine versteckte führende Eins und keinen allmählichen Unterlauf. Er erzeugt keine C-Makros, packt kein vollständiges Maschinenwort mit einer gewählten Ganzzahlbitbreite, es sei denn, Sie interpretieren die gespeicherte Ganzzahl selbst, und er wandelt nicht in IEEE-754-Bitmuster um. Das sind andere Suchabsichten, die andere Werkzeuge bedienen.
Eingabevertrag, Rundungsmodi und Antwortfelder
Senden Sie einen JSON-Körper mit zwei Pflichtfeldern und einem optionalen Modus. value ist die endliche Dezimalzahl zum Kodieren; sie darf als JSON-Zahl oder als numerische Zeichenkette ankommen, und die Aliasse decimal und number werden akzeptiert. fractional_bits ist die Ganzzahl n in Q.n, von null bis zweiundfünfzig einschließlich, damit zwei hoch n eine exakte sichere JavaScript-Ganzzahl bleibt; Aliasse sind frac_bits, n und q. rounding ist optional und lautet standardmäßig nearest, also Hälfte weg von null — die Konvention der meisten DSP-Notizen, und nicht dieselbe wie JavaScript Math.round, das Gleichstände nach plus unendlich schickt. Die anderen dokumentierten Modi sind toward_zero (das skalierte Produkt abschneiden), floor (nach minus unendlich) und ceil (nach plus unendlich); jedes andere Token scheitert mit invalid_input. Bei Erfolg wiederholt der Körper value und fractional_bits, nennt den Rundungsmodus, meldet q_format als Q.n und liefert scale (zwei hoch n), resolution (zwei hoch minus n), stored (den Ganzzahlcode), stored_hex (vorzeichenbehaftetes Magnituden-Hex), reconstructed (stored durch scale), rounding_error (reconstructed minus dem ursprünglichen Wert), abs_error, ein boolesches exact, wenn der gerundete Fehler null ist, und eine kurze Formelzeichenkette.
Wo ein Q-Format-Umrechner seinen Nutzen bringt
Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Grundpreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz; fehlgeschlagene Validierung wird nicht berechnet. Zielt die Suchabsicht auf das IEEE-754-Hexmuster einer Gleitkommazahl, nutzen Sie ein Gleitkomma-Bitmuster-Werkzeug; zielt sie auf eine Q.n-Ganzzahl mit Fehler und Auflösung, ist dies der Vertrag.
Technische Fragen
Wie wandelt man eine Dezimalzahl in eine Q-Festkommazahl um?
Senden Sie ein endliches value und ein ganzzahliges fractional_bits n von 0 bis 52. Die API liefert stored = round(value × 2^n) sowie reconstructed, rounding_error und resolution 2^-n.
Was kostet der Dezimal-zu-Festkomma-Umrechner?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorbezahltes KIT-Guthaben zu $0.002 je erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.