ForHosting KIT · Utilidades de desarrollo

Decodificador de máscaras de bits

El decodificador de banderas de máscara de bits convierte un entero compacto en los nombres de los permisos, funciones, estados u opciones que representa.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Indique el valor almacenado y una lista que asocie cada nombre con un bit que sea potencia de dos. El resultado conserva el orden declarado, devuelve todos los nombres activos e informa de cualquier valor restante procedente de bits no definidos. Resulta útil para leer campos de bases de datos, cargas de API, valores de protocolos, controles de acceso y configuraciones heredadas sin convertir números a binario manualmente ni depender del comportamiento particular de un lenguaje.

Describa la máscara con bits nombrados explícitamente

Comience con el entero no negativo del campo value y añada una fila de flags por cada significado definido en su sistema. Cada fila contiene un nombre y un bit. El bit debe ser una potencia de dos positiva: 1, 2, 4, 8, 16 y así sucesivamente. Estos valores representan posiciones binarias independientes, por lo que pueden combinarse con seguridad mediante suma u OR bit a bit. Los nombres se recortan y deben ser únicos; los valores de bit también deben ser únicos, pues dos etiquetas para la misma posición harían ambigua la respuesta. Las definiciones pueden aparecer en cualquier orden; active_flags respeta el orden proporcionado para que una aplicación mantenga su presentación preferida. El cero es una máscara válida y genera un array active_flags vacío. Se admiten enteros no negativos exactos de JavaScript hasta 9,007,199,254,740,991 y bits individuales hasta 4,503,599,627,370,496. Los registros inválidos fallan claramente en lugar de transformarse silenciosamente en una lista de permisos plausible pero incorrecta.

Interprete las banderas activas y los bits desconocidos

Para cada definición, el decodificador comprueba si esa posición binaria está presente en value. Cuando lo está, añade el nombre correspondiente a active_flags y suma su valor al total activo declarado. La respuesta incluye además unknown_bits, calculado restando del valor original todos los bits activos que sí fueron declarados. Si unknown_bits vale cero, las definiciones suministradas explican completamente la máscara. Un valor distinto de cero no constituye necesariamente un error: puede indicar una bandera recién incorporada por el servidor, una opción interna omitida deliberadamente o una discrepancia de versión del esquema. Mostrar el resto es más seguro que descartar información. Por ejemplo, con value igual a 13 y los bits read=1, write=2, execute=4 y admin=8, los nombres activos son read, execute y admin, mientras unknown_bits vale cero. Si se omitiese el bit 8, el mismo valor devolvería read y execute, con unknown_bits igual a 8. El valor original permanece intacto para conservar una procedencia exacta en registros y comprobaciones posteriores.

Aplique una decodificación determinista a permisos y opciones

Las máscaras de bits son habituales en columnas de bases de datos, modos de sistemas operativos, controles de funciones, registros de dispositivos, estados de juegos y respuestas de API externas, porque agrupan muchos booleanos en un solo entero. Esta capacidad vuelve legibles esos campos en el límite de una integración. Guarde las definiciones junto con la versión del esquema, invoque el decodificador al recibir cada registro y utilice active_flags para mostrar, filtrar o comprobar políticas. Supervise unknown_bits como señal de compatibilidad: un resto distinto de cero puede enviar el registro a revisión antes de que el software confunda un permiso nuevo con un valor antiguo común. El algoritmo realiza operaciones acotadas sobre un máximo de 256 definiciones y no usa red, reloj, configuración regional, azar ni estado mutable; el mismo JSON siempre genera el mismo JSON. Además evita los operadores bit a bit de 32 bits con signo de JavaScript, por lo que procesa máscaras exactas muy superiores a 32 bits. El navegador y la API comparten la misma biblioteca. La consulta interactiva es gratuita y cada tarea automatizada correcta cuesta $0.002.

Explique campos de control de acceso

Convierta una máscara de permisos almacenada en nombres legibles antes de mostrarla en un panel administrativo o una exportación de auditoría.

Inspeccione opciones de API y protocolos

Decodifique valores de opciones combinadas de una integración y conserve los bits no declarados como alerta de cambios del esquema.

Migre configuraciones heredadas

Expanda ajustes numéricos compactos a booleanos o etiquetas explícitos durante una migración de base de datos o aplicación.

¿Qué valores puedo decodificar?

Cualquier entero seguro de JavaScript que no sea negativo. Cada bit declarado debe ser una potencia de dos positiva y única.

¿Qué significa unknown_bits?

Es la parte de value que está activa pero no corresponde a ninguna definición proporcionada. Cero indica que las declaraciones explican toda la máscara.

¿Se conserva el orden de las banderas?

Sí. active_flags sigue el orden de las definiciones recibidas, independientemente del orden numérico de sus bits.

¿Los nombres pueden contener espacios?

Sí. Los nombres son cadenas y se elimina el espacio exterior. Se rechazan los nombres vacíos y los duplicados tras recortarlos.

¿Cuánto cuesta la API?

Cada tarea correcta de la API usa el precio base publicado de $0.002. También puede ejecutar el decodificador gratis en el navegador.

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/bitmask-flags-decode

¿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/bitmask-flags-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":13,"flags":[{"name":"read","bit":1},{"name":"write","bit":2},{"name":"execute","bit":4},{"name":"admin","bit":8}]}'
{
  "value": 13,
  "flags": [
    {
      "name": "read",
      "bit": 1
    },
    {
      "name": "write",
      "bit": 2
    },
    {
      "name": "execute",
      "bit": 4
    },
    {
      "name": "admin",
      "bit": 8
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.bitmask_flags_decode",
  "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.

max_flags256
max_safe_integer9007199254740991
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.

Ver la documentación completa del KIT →