[Batch] Conversor de Hexadecimal a Decimal

Iniciado por maxx93, 5 Agosto 2010, 06:08 AM

0 Miembros y 1 Visitante están viendo este tema.

maxx93

Hola amigos, he creado un conversor de hexadecimal a decimal. Espero que les guste :)
Código (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
set num=%1
if x%num%x==xx (goto :ayuda)
if x%num:~0,1%%num:~-1%x neq x""x (goto :ayuda)
set num=%num:~1,-1%
set hex=%num%
:cantidad
set rep=-1
set cuenta=1
set fin=0
set num=##%num%
set verif=0
:repetir
set let=%num:~-1%
if %let%==# (goto :fin)
set /a rep=%rep%+1
for /l %%a in (1,1,%rep%) do (set cuenta=!cuenta!*16)
if %verif%==0 (set verif=1&set cuenta=1)
if %let%==A (set let=10)
if %let%==a (set let=10)
if %let%==B (set let=11)
if %let%==b (set let=11)
if %let%==C (set let=12)
if %let%==c (set let=12)
if %let%==D (set let=13)
if %let%==d (set let=13)
if %let%==E (set let=14)
if %let%==e (set let=14)
if %let%==F (set let=15)
if %let%==f (set let=15)
set /a cuenta=%cuenta%
set /a val=%let%*%cuenta%
set /a fin=%val%+%fin%
set num=%num:~0,-1%
set cuenta=1
goto :repetir

:fin
echo %fin%
echo %fin%>"HexaDec-Temp"
endlocal
pushd %temp%
set cd=%2
if x%cd%x==xx (set var=##)
if x%cd:~0,1%%cd:~-1%x==x""x (
for /f "delims=" %%a in ('type "%~p0\HexaDec-Temp"') do (
set %cd:~1,-1%=%%a))
del "%~p0\HexaDec-Temp"
popd
goto:eof

:ayuda
echo HexaDec Convierte numeros hexadecimales a decimales
echo Creado por MAXX93
echo.
echo Sintaxis:
echo HexaDec "valor" "variable"
echo.
echo  Valor     Numero hexadecimal
echo  Variable  Opcional permite guardar el resultado en una variable
echo.
echo Ej.:
echo HexaDec "309"
echo HexaDec "309" "dec"
goto:eof


Salu2.

Binary_Death

No... si a mi gustar me gusta... pero... mira, prueba esto:


@Echo Off
set/p hex=Ingrese un numero en hexadecimal:
set/a dec=0x%hex%
Echo.El resultado de la conversion es: %dec%
Pause 1>NUL
exit/b


Pero en fin, siempre va bien saber los métodos mecánicos ^^

Saludos!

maxx93

 :o no sabia que se podia hacer asi jajaja :laugh:

Binary_Death

Yyyy  :xD :xD ya ves, a veces nos complicamos la vida.
Pero igual, está genial para hacerlo manualmente, así se entiende la lógica de la conversión.
Si lo tienes que emplear en un código por X motivo, pues es mejor hacerlo por el método rápido, obviamente, que es más óptimo.

Saludos!