Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: maxx93 en 5 Agosto 2010, 06:08 am



Título: [Batch] Conversor de Decimal a Hexadecimal
Publicado por: maxx93 en 5 Agosto 2010, 06:08 am
Hola amigos, he creado un conversor de decimal a hexadecimal. Espero que les guste :)

Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set num=%1
  4. if x%num%x==xx (goto :ayuda)
  5. if x%num:~0,1%%num:~-1%x neq x""x (goto :ayuda)
  6. set /a num=%num%
  7. set dec=%num%
  8. set s=#
  9. set a=0
  10. set cant=%dec%
  11. set c=0
  12. :cantidad
  13. set /a cant=%cant%/16
  14. set /a a=%a%+1
  15. if %cant% geq 16 (goto :cantidad)
  16. set /a a=%a%+1
  17. for /l %%a in (1,1,%a%) do (
  18. if !num! geq 16 (
  19. set /a a=!num!/16
  20. set cant=!a!
  21. set /a a=!num!-16*!a!
  22. set num=!cant!
  23. if !a!==10 (set a=A)
  24. if !a!==11 (set a=B)
  25. if !a!==12 (set a=C)
  26. if !a!==13 (set a=D)
  27. if !a!==14 (set a=E)
  28. if !a!==15 (set a=F)
  29. set s=!a!!s!
  30. ) else (
  31. if !c!==0 (
  32. set c=1
  33. set a=!num!
  34. if !a!==10 (set a=A)
  35. if !a!==11 (set a=B)
  36. if !a!==12 (set a=C)
  37. if !a!==13 (set a=D)
  38. if !a!==14 (set a=E)
  39. if !a!==15 (set a=F)
  40. set s=!a!!s!)))
  41. echo %s:~0,-1%
  42. echo %s:~0,-1%>"DecaHex-Temp"
  43. pushd %temp%
  44. set cd=%2
  45. if x%cd%x==xx (set var=##)
  46. if x%cd:~0,1%%cd:~-1%x==x""x (
  47. for /f "delims=" %%a in ('type "%~p0\DecaHex-Temp"') do (
  48. set %cd:~1,-1%=%%a))
  49. del "%~p0\DecaHex-Temp"
  50. goto:eof
  51.  
  52. :ayuda
  53. echo DecaHex Convierte numeros decimales a hexadecimales
  54. echo Creado por MAXX93
  55. echo Sintaxis:
  56. echo DecaHex "valor" "variable"
  57. echo  Valor     Numero decimal o Calculo combinado (No acepta division)
  58. echo  Variable  Guarda la conversion en una variable (Opcional)
  59. echo Ej.:
  60. echo DecaHex "777"
  61. echo DecaHex "777" "hex"
  62. goto:eof
  63.  

Salu2.