¿Qué es un conversor de hex a decimal?
Un conversor de hex a decimal lee una cadena en base 16 como 0xde0b6b3a7640000 y devuelve el mismo número en base 10 (aquí 1.000.000.000.000.000.000, es decir 1018), y viceversa. En blockchain los números llegan a 256 bits, así que el conversor debe usar enteros de precisión arbitraria y mostrar también la palabra de 32 bytes rellenada con ceros y la lectura con signo (int256) que usa la EVM.
Valores útiles
| Decimal | Hex | Significado |
|---|---|---|
| 1.000.000 | 0xf4240 | 1 USDT / USDC (6 decimales) |
| 1.000.000.000 | 0x3b9aca00 | 1 gwei en wei; 1 SOL en lamports |
| 1018 | 0xde0b6b3a7640000 | 1 ether en wei |
| 264 − 1 | 0xffffffffffffffff | máximo de uint64 |
| 2128 − 1 | 0xffff…ffff (32 f) | máximo de uint128 |
| 2256 − 1 | 0xffff…ffff (64 f) | máximo de uint256, la cantidad de approve "ilimitada" |
Ejemplo práctico
La lectura de un slot de almacenamiento devuelve 0x00000000000000000000000000000000000000000000000000000000000f4240. Al quitar los ceros iniciales queda 0xf4240 = 15×164 + 4×163 + 2×162 + 4×16 + 0 = 983.040 + 16.384 + 512 + 64 = 1.000.000, que es 1 USDT en unidades de 6 decimales. Una palabra de 64 caracteres f es 2256 − 1 como uint256 pero −1 como int256, que es como un contrato almacena menos uno.
Errores comunes
- Leer una cadena decimal como hex.
1000000es un millón en decimal pero 16.777.216 en hex. La página trata la entrada formada solo por dígitos como decimal salvo que añadas0x. - Perder precisión en una hoja de cálculo. Los valores por encima de 253 (unos 9 × 1015) se redondean con flotantes de doble precisión; los wei y las cantidades de tokens con 18 decimales lo superan.
- Olvidar el signo. Una palabra cuyo primer dígito hex es 8 o mayor tiene el bit más alto activado y puede representar un int256 negativo en lugar de un uint256 enorme.
- Hex de longitud impar.
0xabces un número válido pero no un número entero de bytes; ocupa 2 bytes una vez rellenado el nibble inicial.
Flujo de trabajo típico
- Copia una palabra del desglose de calldata del decodificador ABI o de un slot de almacenamiento en un explorador de bloques.
- Pégala aquí para leerla como cantidad decimal; luego divide por los decimales del token con el conversor de decimales de tokens o el conversor de unidades de Ethereum.
- Si el valor se parece a 0xffff…, revisa la fila int256: puede ser un número negativo o una aprobación (allowance) "infinita".