ForHosting KIT · Utilidades de desarrollo

Calculadora de ceros a la izquierda

Cuente los bits a cero que hay por encima del bit a uno más alto en una palabra de ancho fijo: 16 en 8 bits es 00010000, así que el resultado es 3. También verá la longitud en bits y el binario completo. Gratis en su navegador.

  • Gratis
  • Funciona en su navegador
  • Sin registro
  • Sus datos no salen de su equipo
Úselo desde WebAPIEmailTelegramApp pronto
Si escribe
Valor
16
Ancho
8
Obtiene
Ceros a la izquierda
3
Longitud en bits
5
Binario
00010000
Bit más significativo
4

Contar ceros a la izquierda — CLZ, LZCNT o un barrido derivado de BSR — es el número de bits cero que quedan por encima del uno más significativo de un entero sin signo en una palabra de ancho fijo. Los compiladores emiten ese recuento para el log2 entero, para normalizar un significando antes de un desplazamiento y para hallar el primer flag activo en un registro de estado. Esta calculadora de ceros a la izquierda acepta un entero no negativo en dígitos decimales, hexadecimal con prefijo 0x, binario con 0b u octal con 0o, más un tamaño de palabra de ocho, dieciséis, treinta y dos o sesenta y cuatro bits. Devuelve el recuento CLZ, la longitud en bits de la magnitud, una cadena binaria rellenada al ancho para que usted vea los ceros de cabeza, y el índice basado en cero del bit uno más significativo cuando el valor no es cero. El cero es un caso de primera clase: todos los bits son ceros de cabeza, así que el recuento iguala el ancho elegido.

Qué significa contar ceros a la izquierda en una palabra de ancho fijo

Las instrucciones de hardware que cuentan ceros a la izquierda miran un registro de ancho conocido, no un entero matemático abstracto. En una palabra de ocho bits el valor dieciséis es el patrón 00010000: tres ceros quedan por encima del uno más alto, así que CLZ vale tres. En una palabra de treinta y dos bits la misma magnitud es 00000000000000000000000000010000 y CLZ pasa a veintisiete, porque al ensanchar el registro aparecen veinticuatro ceros altos de más.

Algebraicamente la longitud en bits de un entero positivo es el suelo del logaritmo en base dos del valor más uno, y el recuento de ceros de cabeza es el ancho de palabra menos esa longitud. Cuando el valor es cero no hay bit uno más significativo; cada posición es un cero de cabeza, así que el recuento iguala el ancho.

Esa es la convención de LZCNT en x86, CLZ en ARM, clz en RISC-V y de los builtins de compilador __builtin_clz y leadingZeroBitCount: informan el tamaño completo de palabra para un operando cero en lugar de dejar el resultado indefinido, como a veces hacían las codificaciones antiguas de BSR. Esta capacidad codifica exactamente esa identidad. El campo binario rellenado tiene exactamente width caracteres de cero y uno sin prefijo 0b, lo que hace visibles los ceros de cabeza sin un segundo paso de conversión.

El campo formula reescribe la identidad logarítmica para que la documentación generada y los comentarios de prueba citen la misma frase que usó la calculadora.

Oráculos CLZ para compilador y máquina virtual

Compruebe el log2 entero, la bajada a LZCNT y el operando cero frente a las convenciones de hardware de 8/16/32/64 bits en suites de regresión de compiladores e intérpretes.

Normalización de registros y flags

Averigüe cuántos ceros altos quedan por encima del bit uno más alto de una palabra de estado o habilitación antes de desplazar un campo a una posición canónica.

Enseñanza de longitud en bits y log2

Permita que los estudiantes comparen el binario rellenado a mano y los recuentos CLZ para un tamaño de palabra elegido sin ejecutar un simulador de CPU.

¿Por qué debo elegir 8, 16, 32 o 64 bits?

CLZ se define sobre un registro de ancho fijo. La misma magnitud tiene un recuento distinto en un byte de 8 bits que en una palabra de 32; el enum cerrado coincide con los anchos habituales de CPU y lenguajes.

¿Qué devuelve el recuento de ceros a la izquierda para el cero?

El ancho completo que eligió: 8 en una palabra de 8 bits, 64 en una de 64. Todos los bits del cero son ceros a la izquierda, igual que en LZCNT de x86, CLZ de ARM y clz de RISC-V.

¿Puedo escribir el número en hexadecimal o en binario?

Sí. Escríbalo en decimal, en hexadecimal con 0x, en binario con 0b o en octal con 0o. Se interpreta sin signo y debe caber en el ancho elegido, por eso un número que necesitaría un noveno bit se rechaza con 8 bits.

¿Qué relación hay entre los ceros a la izquierda y el logaritmo en base dos?

La longitud en bits de un número positivo es la parte entera de su logaritmo en base dos más uno, y los ceros a la izquierda son el ancho de la palabra menos esa longitud. Para 16 en 8 bits la longitud es 5 y el resultado, 3.

¿En qué posición indica el bit más significativo?

Las posiciones se numeran desde cero empezando por el bit menos significativo, como es habitual en programación. Por eso 16 muestra su bit más significativo en la posición 4; con el valor cero no hay ninguno que señalar.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

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

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

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"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Qué significa contar ceros a la izquierda en una palabra de ancho fijo

La numeración de bits del campo opcional most_significant_bit sigue la convención habitual de que el bit cero es el menos significativo, de modo que dieciséis informa most_significant_bit cuatro.

Contrato de entrada, anchos y comportamiento ante error

Envíe por POST un cuerpo JSON con dos campos obligatorios. value es un entero no negativo escrito como cadena de dígitos decimales, literal hexadecimal 0x, literal binario 0b o literal octal 0o; también se acepta un número JSON que sea un entero no negativo seguro, y los alias n, integer y x apuntan al mismo campo. width es el tamaño de la palabra sin signo y debe pertenecer al conjunto cerrado ocho, dieciséis, treinta y dos o sesenta y cuatro — los anchos de las instrucciones CLZ habituales — y también se acepta como bits o bit_width. El valor se interpreta sin signo y debe caber en esos bits: dieciséis es legal a ocho bits, doscientos cincuenta y seis no, porque necesitaría un noveno bit. Campos ausentes, cadenas vacías, booleanos, signos, números fraccionarios, prefijos desconocidos y un width fuera del enum fallan con invalid_input que nombra la regla, y esos fallos no se facturan. Si acierta, el cuerpo ecoa value como cadena decimal canónica sin ceros de cabeza (salvo el propio número cero) y width como número, luego expone leading_zeros como recuento principal, bit_length como ancho de la magnitud (cero cuando el valor es cero) y binary como la cadena de bits rellenada al ancho. most_significant_bit solo está presente cuando el valor no es cero; se omite en lugar de ponerse a null para que la salida opcional sea honesta. Ejemplo: value dieciséis y width ocho produce leading_zeros tres, bit_length cinco, binary 00010000 y most_significant_bit cuatro. Ejemplo: value cero y width treinta y dos produce leading_zeros treinta y dos, bit_length cero y una cadena de treinta y dos caracteres cero, sin most_significant_bit.

Dónde una calculadora de ceros a la izquierda aporta valor

Autores de compiladores y máquinas virtuales emiten CLZ o un respaldo por software para el log2 entero, para hallar el flag más alto y para normalizar una mantisa antes de un desplazamiento al estilo de coma flotante; necesitan un oráculo que coincida con el hardware en cero y en cada ancho soportado para que las suites de regresión no acepten en silencio un error de uno en la identidad logarítmica. Autores de firmware y controladores leen registros de estado y de habilitación y quieren el índice del bit pendiente más alto sin escribir un auxiliar clz portable en cada lenguaje que tocan. Las bibliotecas de criptografía y de enteros grandes normalizan un limb antes de un desplazamiento a la izquierda o antes de contar los bits significativos de un nonce, y una calculadora de ancho fijo es el modo más pequeño de comprobar esos auxiliares frente a casos de ocho a sesenta y cuatro bits, incluido el limb todo ceros. Quienes enseñan operadores bit a bit y la normalización al estilo IEEE pueden dar a los estudiantes un valor y un ancho y comparar el binario rellenado a mano más el recuento CLZ con un servicio determinista en lugar de un simulador ISA completo. Al ser parse de nivel A, cada llamada correcta cuesta el precio base publicado $0.002 sin tokens de modelo ni red saliente, y la entrada inválida no consume saldo. Mantenga las solicitudes pequeñas, fije leading_zeros y la cadena binaria rellenada en las pruebas y obtendrá resultados CLZ reproducibles para SDK, fragmentos CMS y workers en el borde sin montar su propia biblioteca local de barrido de bits.

¿Cómo cuento los bits cero a la izquierda de un entero?

Envíe value (decimal no negativo, 0x, 0b o 0o) y width (8, 16, 32 o 64). La API devuelve leading_zeros = width cuando value es 0; si no, width − floor(log2(value)) − 1.

¿Qué devuelve el recuento de ceros a la izquierda para el cero?

leading_zeros iguala el ancho elegido y bit_length es 0. most_significant_bit se omite porque no hay bit activo. Eso coincide con LZCNT, CLZ de ARM y los builtins de compilador.

¿Puedo enviar hexadecimal o un número JSON?

Sí. value acepta dígitos decimales, hex 0x, binario 0b, octal 0o o un entero JSON no negativo seguro. El valor debe caber aún en el ancho sin signo elegido.

¿Cuánto cuesta la calculadora de ceros a la izquierda?

La herramienta del navegador es gratuita. Las solicitudes API usan saldo prepago KIT a $0.002 por llamada correcta; la entrada inválida no se factura.

Ver la documentación completa del KIT →