ForHosting KIT · Utilidades de desarrollo

Conversor decimal a coma fija

Convierta un decimal en el entero que se guarda en formato Q.n de coma fija: 0,1 con 8 bits fraccionarios guarda 26, que en realidad vale 0,1015625, con un error de 0,0015625. Pensado para firmware, DSP y FPGA. 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
0,1
Bits fraccionarios
8
Obtiene
Redondeo
Nearest
Formato Q
Q.8
Escala
256
Resolución
0,00390625

Quien convierte una constante de diseño, un coeficiente de filtro o una lectura de sensor necesita el entero almacenado, el error de reconstrucción tras el redondeo y la resolución dos a la menos n — no un volcado hexadecimal de un flotante. Este conversor de decimal a coma fija acepta un valor decimal real y un recuento n de bits fraccionarios, multiplica por dos a la n, encaja en un entero con un modo de redondeo documentado y devuelve el código almacenado, el real reconstruido, el error de redondeo con signo y la unidad en el último lugar de esa malla Q.n.

Qué significa el formato Q y cómo se forma el entero almacenado

El formato Q, escrito a menudo Q.n o Qn, es el convenio que usan las cabeceras de Texas Instruments, ARM CMSIS-DSP y un sinnúmero de cadenas de herramientas FPGA para un número binario de coma fija con n bits a la derecha del punto binario implícito. El valor real que representa un entero almacenado I es I dividido por dos a la n, de modo que el paso de la malla —la resolución, o unidad en el último lugar de ese formato— es exactamente dos a la menos n.

Codificar un decimal x consiste por tanto en calcular x por dos a la n y redondear a un entero; decodificar es una sola división por la misma escala. Todos los valores representables comparten el mismo paso absoluto, y por eso los códecs de audio, los lazos de control de motores y las tablas de consulta lo prefieren cuando necesitan redondeo determinista y multiplicaciones-acumulaciones enteras baratas.

Frases de búsqueda como conversor de decimal a coma fija, conversor de formato Q, conversor Q15 y convertir flotante a Q31 describen exactamente este trabajo: tomar un decimal humano, elegir n y leer el entero almacenado más cuánto movió el redondeo el valor. Esas son intenciones de búsqueda distintas, cubiertas por otras herramientas.

Una comprobación clásica es el decimal un décimo con ocho bits fraccionarios: la escala es doscientos cincuenta y seis, el redondeo nearest almacena veintiséis, el valor reconstruido es veintiséis entre doscientos cincuenta y seis, y el error de redondeo con signo es la diferencia respecto de un décimo — exactamente el triple que esta página está hecha para mostrar.

Dónde un conversor de formato Q aporta valor

Los autores de firmware usan un conversor de decimal a coma fija cuando pegan un tap de filtro, una ganancia PID o una conversión de unidades en una cabecera y necesitan el entero exacto que ocupará una variable Q15 o Q31. Los bancos FPGA y HDL necesitan el mismo número para que el estímulo del testbench coincida con el datapath RTL que nunca ve un flotante.

Las herramientas de juego y audio convierten muestras normalizadas y pesos de animación a una malla fija antes de empaquetarlos en un activo binario, y quieren el error de redondeo impreso junto al código para que un artista vea si ocho bits fraccionarios bastan. Las aulas que enseñan aritmética de computadores necesitan un oráculo determinista que muestre resolución y error juntos, en lugar de un «multiplique por doscientos cincuenta y seis y redondee» a ojo.

Constantes de firmware y taps DSP

Convierta un decimal de diseño en el entero Q15 o Q.8 que corresponde en una cabecera, y conserve el error de redondeo junto al código almacenado para revisión.

Bancos de prueba FPGA y HDL

Genere el mismo estímulo de coma fija que verá el RTL, con una resolución explícita de dos a la menos n para que los scoreboards toleren un ulp.

Comprobaciones de aritmética en el aula

Muestre al alumnado el entero almacenado, el real reconstruido y el error con signo para cualquier n, incluido el clásico ejemplo de un décimo, que no es exacto en binario.

¿Cuál es la resolución de un número Q.n?

La resolución es exactamente 2^-n: el paso entre dos enteros almacenados consecutivos.

¿Qué modo de redondeo conviene usar?

El modo elegido se repite en la respuesta.

¿Por qué un décimo no se puede almacenar de forma exacta?

0.1 no es un racional diádico. Con ocho bits fraccionarios el entero almacenado más cercano es 26, que se reconstruye como 26/256 = 0.1015625.

¿Cómo convierto un decimal a Q15?

Elija 15 bits fraccionarios. La herramienta multiplica su decimal por dos elevado a 15, lo redondea a un entero y muestra el código guardado, el valor que representa de verdad y el error de redondeo, listo para pegar en el firmware.

¿Cuántos bits fraccionarios puedo usar como máximo?

Hasta 52. El número debe ser entero, de 0 a 52, y si el valor multiplicado por dos elevado a esa potencia sale del rango de enteros seguros, la conversión se rechaza en lugar de perder en silencio los bits bajos.

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/decimal-to-fixed-point

¿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/decimal-to-fixed-point \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":0.1,"fractional_bits":8}'
{
  "value": 0.1,
  "fractional_bits": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.decimal_to_fixed_point",
  "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_fractional_bits52
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.

El firmware embebido, los núcleos DSP, los datapaths FPGA y los motores de juego siguen guardando muchas señales como enteros de coma fija en formato Q, en lugar de flotantes IEEE-754: un número elegido de bits queda a la derecha de un punto binario implícito, de modo que cada entero almacenado es múltiplo de una resolución fija.

Qué significa el formato Q y cómo se forma el entero almacenado

Esto no es coma flotante IEEE-754: no hay campo de exponente, ni uno líder oculto, ni subdesbordamiento gradual. Este endpoint implementa ese contrato y nada más. No emite macros C, no empaqueta una palabra de máquina completa con un ancho de bits enteros elegido salvo que usted interprete el entero almacenado, y no convierte a patrones de bits IEEE-754.

Contrato de entrada, modos de redondeo y campos de la respuesta

Los campos ausentes, las cadenas vacías, los valores no finitos, un n no entero o un n fuera de cero a cincuenta y dos también fallan, y esos fallos no se facturan. Si el producto de value y dos a la n sale del rango de entero seguro, la tarea se rechaza en lugar de perder bits bajos en silencio. Envíe un cuerpo JSON con dos campos obligatorios y un modo opcional. value es el decimal finito a codificar; puede llegar como número JSON o como cadena numérica, y se aceptan los alias decimal y number. fractional_bits es el entero n en Q.n, de cero a cincuenta y dos inclusive, para que dos a la n siga siendo un entero seguro exacto de JavaScript; los alias incluyen frac_bits, n y q. rounding es opcional y por defecto es nearest, que significa mitad alejándose de cero — el convenio que usan la mayoría de las notas DSP, y no el mismo que JavaScript Math.round, que envía los empates hacia más infinito. Los otros modos documentados son toward_zero (truncar el producto escalado), floor (hacia menos infinito) y ceil (hacia más infinito); cualquier otro token falla con invalid_input. En caso de éxito el cuerpo hace eco de value y fractional_bits, nombra el modo de redondeo, informa q_format como Q.n y devuelve scale (dos a la n), resolution (dos a la menos n), stored (el código entero), stored_hex (hex de magnitud con signo), reconstructed (stored entre scale), rounding_error (reconstructed menos el valor original), abs_error, un booleano exact cuando el error redondeado es cero, y una cadena de fórmula breve. Combine la respuesta con su propia comprobación de ancho de palabra si necesita saber si stored cabe en un registro con signo de dieciséis o treinta y dos bits; este endpoint no asume un ancho total de bits, así que la forma hex es magnitud con signo, no complemento a dos de un contenedor oculto.

Dónde un conversor de formato Q aporta valor

Como la implementación es parse de nivel A puro, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo ni red de salida; la validación fallida no consume saldo. Cuando la intención de búsqueda sea el patrón hex IEEE-754 de un flotante, use una herramienta de patrón de bits en coma flotante; cuando la intención sea un entero Q.n con su error y su resolución, este es el contrato.

¿Cómo se convierte un decimal a un entero de coma fija en formato Q?

Envíe un value finito y un fractional_bits entero n de 0 a 52. La API devuelve stored = round(value × 2^n), más reconstructed, rounding_error y resolution 2^-n.

¿Cuánto cuesta el conversor de decimal a coma fija?

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

Ver la documentación completa del KIT →