Bitmaske-Generator
Vier aufeinanderfolgende Einsen ab Bit 0 ergeben die Maske 15: binär 0b1111, hexadezimal 0xf. Geben Sie die Breite und bei Bedarf das niedrigste Bit an, und Sie erhalten die Maske in allen drei Zahlensystemen samt abgedecktem Bitbereich. 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
- Bits
- 4
- Start
- 0
- Maske dezimal
- 15
- Maske binär
- 0b1111
- Maske hexadezimal
- 0xf
- Niedrigstes Bit
- 0
Eine Bitmaske aus aufeinanderfolgenden Einsen ist der Baustein für Flag-Felder, gepackte Protokollköpfe und Registerfenster in Firmware und Systemcode. Sie brauchen N Einsen hintereinander, manchmal nach links verschoben, damit das Feld bei Bit k beginnt, und denselben Wert binär für die Bitprüfung, dezimal für Konstanten und hexadezimal für Datenblätter. Dieser Bitmasken-Generator nimmt die Breite in Bits und eine optionale Startposition des niedrigsten gesetzten Bits entgegen, wendet die klassische Formel an — eins um die Breite minus eins nach links und dann um den Start — und liefert Dezimal, Binär mit Präfix 0b sowie Hexadezimal mit Präfix 0x plus den inklusiven Bitbereich.
Wie Masken aus aufeinanderfolgenden Einsen entstehen
Eine Folge aufeinanderfolgender Einsen ist die Maske, die Sie nutzen, wenn ein Mehrbit-Feld in einem größeren Wort lebt. Ist das Feld vier Bit breit und sitzt am least-significant-Ende, ist die Maske binär 1111, dezimal fünfzehn, hex 0xf. Beginnt dasselbe Vierbit-Feld bei Bit zwei, behalten Sie die vier Einsen und verschieben sie um zwei nach links: binär 111100, dezimal sechzig, hex 0x3c.
Algebraisch ist die unverschobene Folge zwei hoch Breite minus eins, in Shift-Form als offene Klammer eins left-shift Breite geschlossene Klammer minus eins; multiplizieren mit zwei hoch Start ist der zweite Left-Shift. Bit null ist immer das least significant bit, passend zu C, JavaScript, Rust und fast jedem CPU-Handbuch.
Wo ein Bitmasken-Generator seinen Nutzen zeigt
Firmware- und Treiberautoren definieren täglich gepackte Status- und Steuerfelder; die Maske einmal zu erzeugen vermeidet Off-by-one-Fehler, wenn das Feld in einer Siliziumrevision wandert. Protokollentwickler und Reverse Engineers dokumentieren Drahtformate mit Hex-Konstanten und brauchen passende Binärdiagramme für Beiträge und RFCs. Compiler- und VM-Autoren emittieren Mask-and-Shift-Sequenzen zur Bitfield-Extraktion und wollen ein Orakel, das der Lehrbuchform in Regressionssuites entspricht.
Lehrende von bitweisen Operatoren können Studierenden Breite und Start geben und handgeschriebene 0b- und 0x-Antworten mit einem deterministischen Dienst statt eines vollen CPU-Simulators vergleichen. Halten Sie Anfragen klein, pinnen Sie die drei Basen in Tests und erhalten Sie reproduzierbare Flag-Konstanten für SDKs, CMS-Snippets und Edge-Worker, ohne eine eigene lokale Bit-Twiddling-Bibliothek aufzubauen.
Anwendungsfälle
Gepackte Register- und Flag-Konstanten
Erzeugen Sie dezimale, 0b- und 0x-Masken für Mehrbit-Registerfelder mit Breite und LSB-Start, damit Treiber und Datenblatttabellen konsistent bleiben.
Protokoll- und Drahtformat-Dokumentation
Dokumentieren Sie Header-Bitfields mit passenden Binärdiagrammen und Hex-Konstanten aus derselben Formel aufeinanderfolgender Einsen.
Häufige Fragen
Was bedeutet der Parameter start?
start ist die Position des niedrigsten gesetzten Bits, gezählt ab null am least significant bit.
Ist Bit null das least significant bit?
Ja. Die Bitnummerierung entspricht gängigen CPU- und Sprachkonventionen: ein Left-Shift um start verschiebt das Feld zu signifikanteren Bits.
Wie erstelle ich die Maske für ein Feld, das bei Bit 2 beginnt?
Behalten Sie die Breite des Feldes bei und geben Sie 2 als niedrigstes Bit an. Ein Vier-Bit-Feld wird binär zu 111100, dezimal zu 60 und hexadezimal zu 0x3c: dieselben vier Einsen wie 1111, um zwei Stellen nach links verschoben.
Welche Grenzen gelten für Breite und Startposition?
Die Breite liegt zwischen 1 und 53 Bit, und Breite plus Startposition darf 53 nicht überschreiten. So bleibt jede Maske eine Ganzzahl, die dezimal, binär und hexadezimal exakt ist, ohne Rundung.
Ist Bit null das niederwertigste Bit?
Ja. Bit 0 ist immer das niederwertigste, wie in C, JavaScript, Rust und fast jedem Prozessorhandbuch, sodass die Positionen mit denen in Ihrem Datenblatt übereinstimmen.
Warum hat der Hexwert keine führenden Nullen?
Weil er in Kleinbuchstaben und ohne erzwungenes Auffüllen erscheint, damit kurze Felder auf einen Blick lesbar bleiben: Vier Bit ergeben 0xf, keine lange Zahl voller Nullen. Auch die Binärform zeigt nur die signifikanten Bits.
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/bit-mask-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bits":4}'const res = await fetch("https://api.kit.forhosting.com/dev/bit-mask-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bits": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bit-mask-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bits": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bit-mask-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bits":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bits":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bit-mask-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"bits": 4
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_mask_generate",
"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. |
Technische Hinweise
Grenzen halten jedes Ergebnis in einer sicheren Ganzzahl, damit JSON-Clients keine Präzision verlieren.
Wie Masken aus aufeinanderfolgenden Einsen entstehen
Diese Fähigkeit kodiert genau diese Identität: mask equals open parenthesis open parenthesis one left-shift bits close parenthesis minus one close parenthesis left-shift start. Die Antwort spiegelt bits und start wider, liefert mask_decimal als JSON-Zahl, mask_binary als 0b-präfixierte Zeichenkette nur signifikanter Bits und mask_hex als kleingeschriebenes Hex mit Präfix 0x ohne erzwungenes Padding, damit kurze Felder lesbar bleiben. lowest_bit und highest_bit benennen den inklusiven Bereich gesetzter Bits, damit Sie ein Registerfenster dokumentieren können, ohne Einsen von Hand nachzuzählen. formula stellt die Shift-Identität neben den Konstanten in generierter Doku oder Unit-Test-Kommentaren dar.
Eingabevertrag, Grenzen und Fehlerverhalten
Die Implementierung nutzt intern BigInt-Shifts, damit Zwischenoperationen nicht in die signierte Zweiunddreißig-Bit-Falle von JavaScript-Zahlenshifts laufen, und wandelt dann in eine sichere Number für das Dezimalfeld um. Senden Sie per POST einen JSON-Body mit Pflichtfeld bits: eine endliche Ganzzahl von eins bis dreiundfünfzig, die angibt, wie viele aufeinanderfolgende Einsen Sie wollen. start ist optional und standardmäßig null; wenn vorhanden, muss es eine Ganzzahl von null bis zweiundfünfzig sein und die Position des niedrigsten gesetzten Bits nennen. Weil JSON-Zahlen die IEEE-Doppelmantisse teilen, darf die Einschränkung start plus bits höchstens dreiundfünfzig sein, damit die Maske zwei hoch dreiundfünfzig minus eins, Number.MAX_SAFE_INTEGER, nicht überschreitet. Verstöße, fehlendes bits, Nicht-Ganzzahlen, Booleans und leere Zeichenketten scheitern mit invalid_input unter Nennung der Regel; diese Fehler werden nicht berechnet. Erfolgreiche Aufrufe liefern stets dieselbe reine Form: gespiegelte bits und start, die drei Basen, die inklusiven Bitindizes und die formula-Zeichenkette. Beispiel: bits gleich acht und start gleich null ergibt mask_decimal zweihundertfünfundfünfzig, mask_binary 0b11111111, mask_hex 0xff, lowest_bit null, highest_bit sieben. Beispiel: bits gleich drei und start gleich fünf ergibt mask_decimal zweihundertvierundzwanzig, binär 0b11100000, hex 0xe0, Bits fünf bis sieben gesetzt.
Wo ein Bitmasken-Generator seinen Nutzen zeigt
Weil dies Parse-Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz; Fehlgeschlagene Validierung wird nicht berechnet.
Integrationsbeispiele
Unterricht zu bitweisen Shifts und Masken
Lassen Sie Studierende ((1 << bits) - 1) << start in bewerteten Aufgaben prüfen, ohne nach jedem Shift Einsen von Hand zu zählen.
Technische Fragen
Wie erzeuge ich eine Bitmaske aus aufeinanderfolgenden Einsen?
Senden Sie bits (Breite, 1–53) und optionales start (LSB-Index, Standard 0). Die API liefert ((1 << bits) - 1) << start als mask_decimal, mask_binary (0b…) und mask_hex (0x…).
Warum gibt es eine Grenze von 53 Bits?
JSON-Zahlen nutzen IEEE-Doubles mit 53-Bit-Mantisse. start + bits ≤ 53 stellt sicher, dass mask_decimal eine exakte sichere Ganzzahl ohne Präzisionsverlust ist.
Was kostet der Bitmasken-Generator?
Das Browser-Tool ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht berechnet.