[Batch] Conversor de Decimal a Hexadecimal

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 decimal a hexadecimal. 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 /a num=%num%
set dec=%num%
set s=#
set a=0
set cant=%dec%
set c=0
:cantidad
set /a cant=%cant%/16
set /a a=%a%+1
if %cant% geq 16 (goto :cantidad)
set /a a=%a%+1
for /l %%a in (1,1,%a%) do (
if !num! geq 16 (
set /a a=!num!/16
set cant=!a!
set /a a=!num!-16*!a!
set num=!cant!
if !a!==10 (set a=A)
if !a!==11 (set a=B)
if !a!==12 (set a=C)
if !a!==13 (set a=D)
if !a!==14 (set a=E)
if !a!==15 (set a=F)
set s=!a!!s!
) else (
if !c!==0 (
set c=1
set a=!num!
if !a!==10 (set a=A)
if !a!==11 (set a=B)
if !a!==12 (set a=C)
if !a!==13 (set a=D)
if !a!==14 (set a=E)
if !a!==15 (set a=F)
set s=!a!!s!)))
echo %s:~0,-1%
echo %s:~0,-1%>"DecaHex-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\DecaHex-Temp"') do (
set %cd:~1,-1%=%%a))
del "%~p0\DecaHex-Temp"
popd
goto:eof

:ayuda
echo DecaHex Convierte numeros decimales a hexadecimales
echo Creado por MAXX93
echo.
echo Sintaxis:
echo DecaHex "valor" "variable"
echo.
echo  Valor     Numero decimal o Calculo combinado (No acepta division)
echo  Variable  Guarda la conversion en una variable (Opcional)
echo.
echo Ej.:
echo DecaHex "777"
echo DecaHex "777" "hex"
goto:eof


Salu2.