ForHosting KIT · Strumenti per sviluppatori

Calcolatore di zeri iniziali

Conti i bit a zero che stanno sopra il bit a uno più alto in una parola di ampiezza fissa: 16 su 8 bit è 00010000, quindi il risultato è 3. Vede anche la lunghezza in bit e il binario completo. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Valore
16
Larghezza
8
Ottiene
Zeri iniziali
3
Lunghezza in bit
5
Binario
00010000
Bit più significativo
4

Contare gli zeri iniziali — CLZ, LZCNT o una scansione derivata da BSR — è il numero di bit a zero che stanno sopra il bit a uno più significativo di un intero senza segno in una parola a larghezza fissa. I compilatori emettono quel conteggio per il log2 intero, per normalizzare un significando prima di uno scorrimento e per trovare il primo flag impostato in un registro di stato. Questo calcolatore di zeri iniziali accetta un intero non negativo in cifre decimali, esadecimale con prefisso 0x, binario con 0b o ottale con 0o, più una dimensione di parola di otto, sedici, trentadue o sessantaquattro bit. Restituisce il conteggio CLZ, la lunghezza in bit della magnitudine, una stringa binaria riempita alla larghezza così Lei vede gli zeri di testa, e l’indice a base zero del bit a uno più significativo quando il valore non è zero. Lo zero è un caso di prima classe: ogni bit è uno zero iniziale, quindi il conteggio uguaglia la larghezza scelta.

Che cosa significa contare gli zeri iniziali su una parola a larghezza fissa

Le istruzioni hardware che contano gli zeri iniziali guardano un registro di larghezza nota, non un intero matematico astratto. In una parola di otto bit il valore sedici è il motivo 00010000: tre zeri stanno sopra l’uno più alto, quindi CLZ vale tre. In una parola di trentadue bit la stessa magnitudine è 00000000000000000000000000010000 e CLZ diventa ventisette, perché allargando il registro compaiono ventiquattro zeri alti in più.

Algebricamente la lunghezza in bit di un intero positivo è il pavimento del logaritmo in base due del valore più uno, e il conteggio degli zeri iniziali è la larghezza della parola meno quella lunghezza. Quando il valore è zero non esiste un bit a uno più significativo; ogni posizione è uno zero iniziale, quindi il conteggio uguaglia la larghezza.

È la convenzione di LZCNT su x86, CLZ su ARM, clz su RISC-V e dei builtin di compilatore __builtin_clz e leadingZeroBitCount: riportano la dimensione intera della parola per un operando zero invece di lasciare il risultato indefinito, come a volte facevano le vecchie codifiche BSR. Questa capacità codifica esattamente quell’identità. Il campo binario riempito ha esattamente width caratteri di zero e uno senza prefisso 0b, il che rende visibili gli zeri iniziali senza un secondo passo di conversione.

Il campo formula riformula l’identità logaritmica così la documentazione generata e i commenti di test citano la stessa frase usata dal calcolatore.

Oracoli CLZ per compilatore e macchina virtuale

Verifichi il log2 intero, l’abbassamento a LZCNT e il comportamento dell’operando zero rispetto alle convenzioni hardware a 8/16/32/64 bit nelle suite di regressione di compilatori e interpreti.

Normalizzazione di registri e flag

Scopra quanti zeri alti stanno sopra il bit a uno più alto di una parola di stato o di abilitazione prima di spostare un campo in una posizione canonica.

Insegnamento della lunghezza in bit e del log2

Lasci che gli studenti confrontino il binario riempito a mano e i conteggi CLZ per una dimensione di parola scelta, senza eseguire un simulatore di CPU.

Che cosa restituisce il conteggio degli zeri iniziali per lo zero?

Ciò coincide con LZCNT, CLZ di ARM e i builtin di compilatore.

Perché devo scegliere 8, 16, 32 o 64 bit?

CLZ è definito su un registro a larghezza fissa. La stessa magnitudine ha un conteggio diverso in un byte da 8 bit e in una parola da 32; l’enum chiuso coincide con le larghezze comuni di CPU e linguaggi.

Posso inserire il numero in esadecimale o in binario?

Sì. Lo scriva in decimale, in esadecimale con 0x, in binario con 0b o in ottale con 0o. Viene letto senza segno e deve stare nell'ampiezza scelta, per questo un numero che richiederebbe un nono bit viene rifiutato a 8 bit.

Che legame c'è tra zeri iniziali e logaritmo in base due?

La lunghezza in bit di un numero positivo è la parte intera del suo logaritmo in base due più uno, e gli zeri iniziali sono l'ampiezza della parola meno quella lunghezza. Per 16 su 8 bit la lunghezza è 5 e il risultato 3.

In quale posizione viene indicato il bit più significativo?

Le posizioni si contano da zero partendo dal bit meno significativo, come si usa in programmazione. Per questo 16 indica il bit più significativo in posizione 4; per il valore zero non ce n'è alcuno.

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.

POSThttps://api.kit.forhosting.com/dev/count-leading-zeros

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev/count-leading-zeros \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":"16","width":8}'
{
  "value": "16",
  "width": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.count_leading_zeros",
  "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.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Che cosa significa contare gli zeri iniziali su una parola a larghezza fissa

La numerazione dei bit del campo opzionale most_significant_bit segue la convenzione consueta per cui il bit zero è il meno significativo, così sedici riporta most_significant_bit quattro.

Contratto di ingresso, larghezze e comportamento di errore

Il valore è interpretato senza segno e deve stare in quei bit: sedici è lecito a otto bit, duecentocinquantasei no, perché servirebbe un nono bit. Invii con POST un corpo JSON con due campi obbligatori. value è un intero non negativo scritto come stringa di cifre decimali, letterale esadecimale 0x, letterale binario 0b o letterale ottale 0o; è accettato anche un numero JSON che sia un intero non negativo sicuro, e gli alias n, integer e x puntano allo stesso campo. width è la dimensione della parola senza segno e deve appartenere all’insieme chiuso otto, sedici, trentadue o sessantaquattro — le larghezze delle istruzioni CLZ comuni — accettato anche come bits o bit_width. Campi assenti, stringhe vuote, booleani, segni, numeri frazionari, prefissi sconosciuti e un width fuori dall’enum falliscono con invalid_input che nomina la regola, e quei fallimenti non vengono fatturati. In caso di successo il corpo ecoa value come stringa decimale canonica senza zeri iniziali (salvo il numero zero stesso) e width come numero, poi espone leading_zeros come conteggio principale, bit_length come larghezza della magnitudine (zero quando il valore è zero) e binary come la stringa di bit riempita alla larghezza. most_significant_bit è presente solo quando il valore non è zero; viene omesso anziché impostato a null così l’uscita opzionale resta onesta. Esempio: value sedici e width otto producono leading_zeros tre, bit_length cinque, binary 00010000 e most_significant_bit quattro. Esempio: value zero e width trentadue producono leading_zeros trentadue, bit_length zero e una stringa di trentadue caratteri zero, senza most_significant_bit.

Dove un calcolatore di zeri iniziali dimostra il proprio valore

Gli autori di compilatori e macchine virtuali emettono CLZ o un ripiego software per il log2 intero, per trovare il flag più alto e per normalizzare una mantissa prima di uno scorrimento in stile virgola mobile; hanno bisogno di un oracolo che coincida con l’hardware sullo zero e su ogni larghezza supportata così le suite di regressione non accettano in silenzio un errore di uno nell’identità logaritmica. Gli autori di firmware e driver leggono registri di stato e di abilitazione e vogliono l’indice del bit in sospeso più alto senza scrivere un ausilio clz portatile in ogni linguaggio che toccano. Le librerie di crittografia e di interi grandi normalizzano un limb prima di uno scorrimento a sinistra o prima di contare i bit significativi di un nonce, e un calcolatore a larghezza fissa è il modo più snello per controllare quegli ausili sui casi da otto a sessantaquattro bit, incluso il limb tutto zeri. Chi insegna operatori bit a bit e la normalizzazione in stile IEEE può dare agli studenti un valore e una larghezza e confrontare il binario riempito a mano più il conteggio CLZ con un servizio deterministico invece di un simulatore ISA completo. Poiché si tratta di parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita, e l’ingresso non valido non consuma il saldo. Tenga le richieste piccole, fissi leading_zeros e la stringa binaria riempita nei test e otterrà risultati CLZ riproducibili per SDK, frammenti CMS e worker al bordo senza allestire una propria biblioteca locale di scansione dei bit.

Come si contano i bit zero iniziali di un intero?

Invii value (decimale non negativo, 0x, 0b o 0o) e width (8, 16, 32 o 64). L’API restituisce leading_zeros = width quando value è 0, altrimenti width − floor(log2(value)) − 1.

Posso inviare esadecimale o un numero JSON?

Sì. value accetta cifre decimali, hex 0x, binario 0b, ottale 0o o un intero JSON non negativo sicuro. Il valore deve comunque stare nella larghezza senza segno scelta.

Quanto costa il calcolatore di zeri iniziali?

Lo strumento del browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l’ingresso non valido non viene fatturato.

Leggi la documentazione completa del KIT →