对输入数长度判断在16位以内 如需处理更大数 可自加判断
当然 有人可处理转其他进制- @echo off&setlocal enabledelayedexpansion
- set/p Str=请输入十进制数:
- set "Code=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@"
- for %%i in (2 8 16) do set S=!str!&call:lp %%i _%%i&ECHO !str! 对应 [%%i进制]: !_%%i!
- pause&exit
- :lp
- set U=!S!FEDCBA9876543210
- SET/A U=0x!U:~16,1!,R=0
- for /l %%i in (0 1 %U%) do (
- set/a "N=!S:~%%i,1!+(R*10),r=N%%%1,N/=%1"
- set B=!B!!N!
- if !B! equ 0 set "B="
- )
- set %2=!Code:~%R%,1!!%2!
- if defined B set S=!B!&set B=&goto lp
复制代码
|