[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
算法:
  1. 比如11271900转换成16进制是:ABFEDC
  2. 先拿16除11271900,商704493,余12
  3. 再拿16除704493,商44030,余13
  4. 再拿16除44030,商2751,余14
  5. 再拿16除2751,商171,余15
  6. 再拿16除171,商10,余11
  7. 再拿16除10,商0,余10
  8. 最后,倒着取这些:
  9. 10
  10. 11
  11. 15
  12. 14
  13. 13
  14. 12
  15. 然后按照这个表换算:
  16. 10=A
  17. 11=B
  18. 12=C
  19. 13=D
  20. 14=E
  21. 15=F
  22. 连起来就是:ABFEDC
复制代码


代码:
  1. @echo off
  2. set f=0123456789ABCDEF
  3. set /p num=输入十进制数字:
  4. :a
  5. set /a mod = %num% %% 16
  6. set /a num /=16
  7. set en=%mod% %en%
  8. if not %num% lss 1 (goto a)
  9. for %%i in (%en%) do (call set/p=%%f:~%%i,1%%<nul)
  10. pause>nul
复制代码

[ 本帖最后由 foxJL 于 2008-3-4 15:27 编辑 ]
1

评分人数

TOP

原帖由 希望的寄托 于 2008-3-6 10:54 发表
call set/p=%%f:~%%i,1%%

对,取变量%f%中%%i的下一位.

TOP

干脆再加一点,凑成十进制转任意进制.
  1. @echo off
  2. ::code by foxjl bbs.bathome.net
  3. title 十进制转任意进制
  4. mode con cols=40 lines=20
  5. set f=0123456789ABCDEF
  6. for %%i in (2.十进制转二进制,8.十进制转八进制,12.十进制转十二进制,16.十进制转十六进制) do (
  7.         echo.&echo.&echo.&set /p=           %%i<nul)
  8.         echo.&echo.&        set /p n=           选择:
  9. cls
  10. title 十进制转%n%进制
  11. set /p num=输入十进制数字:
  12. :a
  13. set /a mod=num%%n,num /=n
  14. set en=%mod% %en%
  15. if not %num% lss 1 (goto a)
  16. for %%i in (%en%) do (call set/p=%%f:~%%i,1%%<nul)
  17. pause>nul
复制代码

[ 本帖最后由 foxJL 于 2008-3-6 17:59 编辑 ]

TOP

原帖由 随风 于 2008-3-6 17:54 发表
set f=0123456789ABC
呵呵呵,少写了些字母吧?
呵呵,多谢指正,代码已经更新.

TOP

返回列表