Generatore maschera di bit
Quattro uni consecutivi a partire dal bit 0 formano la maschera 15: 0b1111 in binario e 0xf in esadecimale. Indichi la larghezza e, se serve, il bit più basso, e ottenga la maschera nelle tre basi con l'intervallo di bit che copre. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Bit
- 4
- Inizio
- 0
- Maschera in decimale
- 15
- Maschera in binario
- 0b1111
- Maschera in esadecimale
- 0xf
- Bit meno significativo
- 0
Una maschera di bit di uni consecutivi è il mattone di base di campi flag, intestazioni di protocollo impacchettate e finestre di registro in firmware e codice di sistema. Lei ha bisogno di N uni di fila, a volte spostati a sinistra così il campo inizia al bit k, e dello stesso valore in binario per la revisione bit a bit, in decimale per le costanti e in esadecimale per i datasheet. Questo generatore di maschera di bit accetta la larghezza in bit e una posizione di partenza opzionale del bit impostato più basso, applica la formula classica di uno spostato a sinistra della larghezza meno uno e poi della partenza, e restituisce decimale, binario con prefisso 0b ed esadecimale con prefisso 0x, più l’intervallo inclusivo di bit.
Come si costruiscono le maschere di uni consecutivi
Una sequenza di uni consecutivi è la maschera usata quando un campo multi-bit vive dentro una parola più ampia. Se il campo è largo quattro bit e sta all’estremo meno significativo, la maschera è binario 1111, decimale quindici, hex 0xf. Se lo stesso campo di quattro bit inizia al bit due, si tengono i quattro uni e si spostano di due posizioni a sinistra, ottenendo binario 111100, decimale sessanta, hex 0x3c.
Algebricamente la sequenza non spostata è due elevato alla larghezza meno uno, scritta in forma di shift come parentesi aperta uno left-shift larghezza parentesi chiusa meno uno; moltiplicare per due elevato alla partenza è il secondo scorrimento a sinistra. Il bit zero è sempre il meno significativo, in linea con C, JavaScript, Rust e quasi tutti i manuali CPU.
Dove un generatore di maschera di bit crea valore
Autori di firmware e driver definiscono ogni giorno campi di stato e controllo impacchettati; generare la maschera una volta evita errori di uno quando il campo si sposta in una revisione del silicio. Progettisti di protocolli e reverse engineer documentano formati di linea con costanti hex e necessitano di diagrammi binari corrispondenti per post e RFC. Autori di compilatori e VM emettono sequenze maschera-e-scorrimento per l’estrazione di bitfield e vogliono un oracolo allineato alla forma da manuale per le suite di regressione.
Chi insegna gli operatori bit a bit può dare larghezza e partenza agli studenti e confrontare le risposte 0b e 0x scritte a mano con un servizio deterministico invece di un simulatore CPU completo.
Casi d'uso
Costanti di registro e flag impacchettati
Generi maschere decimali, 0b e 0x per campi di registro multi-bit con larghezza e partenza LSB così driver e tabelle datasheet restano coerenti.
Documentazione di protocolli e formati di linea
Documenti i bitfield di intestazione con diagrammi binari e costanti hex dalla stessa formula di uni consecutivi.
Domande frequenti
Cosa significa il parametro start?
start è la posizione del bit impostato più basso, contando da zero al bit meno significativo.
Il bit zero è il meno significativo?
Sì. La numerazione dei bit segue le convenzioni comuni di CPU e linguaggi: uno scorrimento a sinistra di start sposta il campo verso bit più significativi.
Come creo la maschera di un campo che inizia al bit 2?
Mantenga la larghezza del campo e indichi 2 come bit più basso. Un campo di quattro bit diventa 111100 in binario, 60 in decimale e 0x3c in esadecimale: gli stessi quattro uni di 1111, spostati di due posizioni a sinistra.
Quali limiti hanno la larghezza e la posizione iniziale?
La larghezza va da 1 a 53 bit, e la larghezza più la posizione iniziale non può superare 53. Così ogni maschera resta un intero esatto in decimale, binario ed esadecimale, senza arrotondamenti.
Perché l'esadecimale non ha zeri iniziali?
Perché viene mostrato in minuscolo e senza riempimento forzato, così i campi corti si leggono a colpo d'occhio: quattro bit danno 0xf, non un numero lungo pieno di zeri. Anche il binario mostra solo i bit significativi.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"bits": 4
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_mask_generate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
I limiti mantengono ogni risultato entro un intero sicuro così i client JSON non perdono precisione.
Come si costruiscono le maschere di uni consecutivi
Questa capacità codifica esattamente quella identità: mask equals open parenthesis open parenthesis one left-shift bits close parenthesis minus one close parenthesis left-shift start. La risposta ripete bits e start, espone mask_decimal come numero JSON, mask_binary come stringa con prefisso 0b dei soli bit significativi, e mask_hex come hex minuscolo con prefisso 0x senza padding forzato così i campi corti restano leggibili. lowest_bit e highest_bit nominano l’intervallo inclusivo dei bit impostati per documentare una finestra di registro senza ricontare gli uni a mano. formula riformula l’identità di scorrimento accanto alle costanti in documentazione generata o commenti di test unitari.
Contratto di ingresso, limiti e comportamento d’errore
L’implementazione usa scorrimenti BigInt internamente così le operazioni intermedie non cadono nella trappola a trentadue bit con segno degli shift numerici di JavaScript, poi converte in un Number sicuro per il campo decimale. Invii un corpo JSON in POST con bits obbligatorio: un intero finito da uno a cinquantatré che descrive quanti uni consecutivi desidera. start è opzionale e per impostazione predefinita vale zero; se presente deve essere un intero da zero a cinquantadue che indica la posizione del bit impostato più basso. Poiché i numeri JSON condividono la mantissa IEEE a doppia precisione, il vincolo start più bits deve essere al massimo cinquantatré affinché la maschera non superi due elevato a cinquantatré meno uno, Number.MAX_SAFE_INTEGER. Violazioni, bits assente, non interi, booleani e stringhe vuote falliscono con invalid_input nominando la regola, e tali fallimenti non vengono addebitati. Le chiamate riuscite restituiscono sempre la stessa forma pura: bits e start riecheggiati, le tre basi, gli indici di bit inclusivi e la stringa formula. Esempio: bits uguale a otto e start uguale a zero produce mask_decimal duecentocinquantacinque, mask_binary 0b11111111, mask_hex 0xff, lowest_bit zero, highest_bit sette. Esempio: bits uguale a tre e start uguale a cinque produce mask_decimal duecentoventiquattro, binario 0b11100000, hex 0xe0, bit da cinque a sette impostati.
Dove un generatore di maschera di bit crea valore
Essendo parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita, e l’input non valido non consuma saldo. Mantenga le richieste piccole, fissi le tre basi nei test e otterrà costanti di flag riproducibili per SDK, snippet CMS e worker edge senza allestire una libreria locale di manipolazione bit di propria.
Casi di integrazione
Insegnamento di scorrimenti e maschere bit a bit
Consenta agli studenti di verificare ((1 << bits) - 1) << start nei compiti valutati senza contare a mano gli uni dopo ogni scorrimento.
Domande tecniche
Come genero una maschera di bit di uni consecutivi?
Invii bits (larghezza, 1–53) e start opzionale (indice LSB, predefinito 0). L’API restituisce ((1 << bits) - 1) << start come mask_decimal, mask_binary (0b…) e mask_hex (0x…).
Perché c’è un limite di 53 bit?
I numeri JSON usano double IEEE con mantissa a 53 bit. Mantenere start + bits ≤ 53 garantisce che mask_decimal sia un intero sicuro esatto senza perdita di precisione.
Quanto costa il generatore di maschera di bit?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l’input non valido non viene addebitato.