代码
1
@echo
off
&
setlocal
EnableDelayedExpansion&color 1f
2 title 任意进制数互转
3 set " str=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
4 for / l %%a in ( 0 1 35 ) do (
5 set _%%a = !str:~%%a , 1 !
6 set _!str:~%%a , 1 ! = %%a
7 )
8 :start
9 setlocal & cls
10 echo \ & echo 本程序可将任意进制的数( 1 - 36 )转换成指定进制的数。
11 echo \ & echo 输入方法: 需转换的数 空格 输入的数的进制 空格 被转换成的进制
12 echo \ & echo 如需将 16 进制数 2af5 转换为 8 进制
13 echo \ & echo 则输入 2af5 16 8 用空格分开即可
14 set / p zjz = & cls
15 call :fff !zjz!
16 set num = !var!
17 if !qz! neq 10 call :loop
18 if !hou! equ 10 goto xs
19 :lis 10 进制转 n 进制
20 set / a yu = num%%hou , num /= hou
21 call set jie = !!_%yu%!!!jie!
22 if !num! gtr 0 goto lis
23 set num = !jie!
24 :xs
25 echo \ & echo !qz! 进制数 !var!
26 echo \ & echo !hou! 进制数 !num!
27 pause > nul
28 endlocal
29 goto start
30 :loop n 进制转 10 进制
31 for / l %%a in ( 0 1 100 ) do (
32 if not " !var:~%%a,1! " == "" (
33 call set sun = %%_!var:~%%a , 1 !%% !sun!
34 ))
35 set / a nnn = 1 , num = 0
36 for %%a in ( !sun! ) do (
37 set / a num = %%a*nnn + num
38 set / a nnn* = qz
39 )
40 goto :eof
41 :fff
42 set var = %1 & set qz = %2 & set hou = %3
43 goto :eof
2 title 任意进制数互转
3 set " str=0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
4 for / l %%a in ( 0 1 35 ) do (
5 set _%%a = !str:~%%a , 1 !
6 set _!str:~%%a , 1 ! = %%a
7 )
8 :start
9 setlocal & cls
10 echo \ & echo 本程序可将任意进制的数( 1 - 36 )转换成指定进制的数。
11 echo \ & echo 输入方法: 需转换的数 空格 输入的数的进制 空格 被转换成的进制
12 echo \ & echo 如需将 16 进制数 2af5 转换为 8 进制
13 echo \ & echo 则输入 2af5 16 8 用空格分开即可
14 set / p zjz = & cls
15 call :fff !zjz!
16 set num = !var!
17 if !qz! neq 10 call :loop
18 if !hou! equ 10 goto xs
19 :lis 10 进制转 n 进制
20 set / a yu = num%%hou , num /= hou
21 call set jie = !!_%yu%!!!jie!
22 if !num! gtr 0 goto lis
23 set num = !jie!
24 :xs
25 echo \ & echo !qz! 进制数 !var!
26 echo \ & echo !hou! 进制数 !num!
27 pause > nul
28 endlocal
29 goto start
30 :loop n 进制转 10 进制
31 for / l %%a in ( 0 1 100 ) do (
32 if not " !var:~%%a,1! " == "" (
33 call set sun = %%_!var:~%%a , 1 !%% !sun!
34 ))
35 set / a nnn = 1 , num = 0
36 for %%a in ( !sun! ) do (
37 set / a num = %%a*nnn + num
38 set / a nnn* = qz
39 )
40 goto :eof
41 :fff
42 set var = %1 & set qz = %2 & set hou = %3
43 goto :eof