Convertidor de bases
Reescribe un entero de cualquier base entre 2 y 36 en otra: el hexadecimal FF es 255 en decimal. Cada dígito se comprueba contra su base, así que un dígito no válido se señala en lugar de adivinarse. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Valor
- FF
- Base numérica de origen
- 16
- Base numérica de destino
- 10
- Resultado
- 255
- Normalizado
- FF
- En base diez
- 255
- Recuento de dígitos
- 3
Un convertidor de bases reescribe el mismo entero en otra base numérica sin alterar su valor. Binario, octal, decimal y hexadecimal aparecen a diario en clases de programación, máscaras de red, códigos de color y firmware embebido, y bases mayores de dieciséis se usan en esquemas seriales compactos y problemas de concursos. Esta herramienta acepta un entero escrito con dígitos del cero al nueve y letras de la A a la Z en cualquier base de origen entre dos y treinta y seis, comprueba que cada dígito sea legal para esa base y emite la cadena equivalente en la base de destino.
Cómo la conversión de base preserva el valor entero
Un entero en base b es una suma ponderada de sus dígitos: el dígito de más a la derecha vale uno, el siguiente vale b, luego b al cuadrado, y así sucesivamente. Convertir de base b a base k significa recuperar ese único entero no negativo y reescribirlo con pesos que son potencias de k.
En la práctica, el convertidor recorre la cadena de origen de izquierda a derecha, multiplica el acumulado por la base de origen y suma el valor de cada dígito tras confirmar que es estrictamente menor que la base de origen. Los dígitos del cero al nueve se mapean a sí mismos; las letras de la A a la Z (sin distinguir mayúsculas) se mapean del diez al treinta y cinco.
Una vez conocido el entero absoluto, la representación de destino se obtiene por divisiones repetidas entre la base de destino, recogiendo los restos como dígitos y leyéndolos del último resto al primero. El cero es un único dígito cero en toda base. Un signo menos inicial se conserva para valores no nulos; los signos más se aceptan y se eliminan.
Los ceros a la izquierda en el origen se ignoran para el valor, pero la respuesta también devuelve una forma normalizada en mayúsculas sin ceros iniciales innecesarios para que los llamadores puedan comparar cadenas de forma determinista. La magnitud decimal absoluta está acotada por el límite de enteros seguros de JavaScript, de modo que cada resto y cada valor posicional permanecen exactos—sin deriva en coma flotante, sin bibliotecas externas y sin llamadas de red de ningún tipo.
Dónde aparece la conversión de bases en el trabajo real
Los estudiantes que depuran deberes de operaciones bit a bit necesitan un oráculo fiable que marque un dígito ilegal en lugar de envolver en silencio o inventar un resultado. Los ingenieros de firmware y redes alternan entre máscaras binarias, bits de permiso en octal y volcados de registros en hexadecimal al documentar un dispositivo o revisar una captura. Los equipos de producto que generan códigos alfanuméricos compactos en bases superiores a diez siguen necesitando un rastro de auditoría en base diez para herramientas de soporte y almacenes.
Si más adelante necesita codificación binaria Base64, conversión de unidades de magnitudes físicas o una suma de dígitos en una base elegida, esos son intenciones de búsqueda y páginas de aterrizaje distintas, no sobrecargas de este convertidor de bases.
Qué puede hacer con ella
Ejercicios de clase en binario, octal y hex
Convierta valores de deberes entre bases 2, 8, 10 y 16 con errores claros de dígito inválido que los estudiantes puedan corregir.
Volcados de registros de firmware y redes
Reescriba valores de registro hexadecimales como cadenas de bits binarias o recuentos decimales para documentación, tickets y revisiones de código.
Preguntas frecuentes
¿Qué bases están admitidas?
Cualquier base entera de 2 a 36 tanto para el origen como para el destino. Los dígitos usan 0-9 y luego A-Z (sin distinguir mayúsculas en la entrada).
¿Las letras distinguen mayúsculas y minúsculas?
Las letras de entrada no distinguen mayúsculas. La salida siempre usa A-Z en mayúsculas para dígitos de diez en adelante.
¿Cómo se tratan los números negativos?
Se acepta un signo menos opcional al inicio. Se convierte el valor absoluto y se restaura el signo en resultados no nulos.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta en local.
¿Cómo se escribe 255 en binario?
Como ocho unos seguidos. Elija 10 como base de origen y 2 como base de destino; el mismo número es FF en hexadecimal, porque 255 es el mayor valor que cabe en ocho cifras binarias.
Herramientas relacionadas
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/numth/radix-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":"FF","from_base":16,"to_base":10}'const res = await fetch("https://api.kit.forhosting.com/numth/radix-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": "FF",
"from_base": 16,
"to_base": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/radix-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": "FF",
"from_base": 16,
"to_base": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/radix-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":"FF","from_base":16,"to_base":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":"FF","from_base":16,"to_base":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/radix-convert", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"value": "FF",
"from_base": 16,
"to_base": 10
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.radix_convert",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
min_base | 2 |
max_base | 36 |
max_value_chars | 64 |
max_abs_decimal | 9007199254740991 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Qué envía y qué recibe a cambio
Comprobaciones clásicas incluyen hexadecimal FF a decimal doscientos cincuenta y cinco, decimal doscientos cincuenta y cinco a binario ocho unos, y octal siete cinco cinco a decimal cuatrocientos noventa y tres. Proporcione tres campos: value como el texto entero en el alfabeto de origen, from_base como un entero de dos a treinta y seis, y to_base como la base de destino en el mismo rango. Se aceptan alias más amigables: number, n, input o text para el valor; from, source_base, base_from o src_base para la base de origen; to, target_base, base_to o dst_base para la base de destino. Campos ausentes, bases no enteras, bases fuera de dos a treinta y seis, valores vacíos, caracteres ilegales, dígitos demasiado grandes para la base de origen, cuerpos con más de sesenta y cuatro caracteres significativos o magnitudes más allá del límite de enteros seguros se rechazan con invalid_input y no se cobran. En caso de éxito la respuesta repite la cadena value original y las bases efectivas, suministra normalized como la forma canónica con signo en mayúsculas, decimal como el entero con signo en base diez, result como la cadena convertida en la base de destino, negative como booleano y digit_count como el número de dígitos del cuerpo absoluto del resultado.
Dónde aparece la conversión de bases en el trabajo real
Como esta capacidad es un motor de parse puro, el mismo valor y las mismas bases siempre producen el mismo JSON sin deriva de modelo ni estado almacenado. El precio de la API es la base publicada de $0.002 por ítem exitoso; la validación fallida no consume saldo.
Casos de integración
Fixtures golden de concursos y CI
Genere cadenas deterministas en base b a partir de enteros conocidos para pruebas de concursos de programación y aserciones de canalización.
Preguntas técnicas
¿Qué ocurre si un dígito no es válido para la base de origen?
La petición falla con invalid_input, indicando el carácter incorrecto y el rango de dígitos permitido. La entrada inválida no se cobra.