发现变量int为空 最后显示空 修正下
另把补位的去掉 直接加
@echo off&setlocal enabledelayedexpansion
set s=8a43b37c
set /a "x=8189,m=0"
for /l %%a in (1,1,14) do (
set /a "l=(x+m)/2"
for %%i in (!l!) do if "!s:~%%i!" equ "" (set /a x=%%i) else set /a "m=%%i"
)
for /l %%i in (!l! -1 0) do (
set/a "i=0x!s:~%%i,1!,n=l-%%i"
if !n! lss 2 (
if defined in (set/a in+=16*i&if !in! gtr 99 (set rl=2)else set "rl=1"
for /l %%j in (0 1 !rl!) do set "ins=!in:~%%j,1!!ins!"
) else set/a "in=i"
) else (
set /a "i*=16"
if !i! gtr 99 (set lr=2)else set "lr=1"
for /l %%j in (0 1 !lr!) do set "inx=!i:~%%j,1!!inx!"
for /l %%a in (2 1 !n!) do (
for /l %%i in (0 1 !lr!) do (
set /a "m=6*!inx:~%%i,1!+r"
if !m! gtr 9 (set r=!m:~,1!) else set "r="
set "ni=!ni!!m:~-1!"
)
set ni=!ni!!r!&set in=!ni:~1!&set nj=!nj!!ni:~,1!&set "r="
for /l %%i in (0 1 !lr!) do (
set/a "m=!in:~%%i,1!+!inx:~%%i,1!+r"
if !m! gtr 9 (set r=1) else set "r="
set "nx=!nx!!m:~-1!"
)
set inx=!nj!!nx!!r!&set nj=&set ni=&set "nx="
if !m! lss 10 (set /a lr+=1)else set r=&set /a lr+=2
)
if !rl! lss !lr! set/a "rl=lr"
for /l %%i in (0 1 !rl!) do (
set/a "m=!inx:~%%i,1!+!ins:~%%i,1!+r"
if !m! gtr 9 (set r=1) else set "r="
set "ni=!ni!!m:~-1!"
)
if defined r set/a rl+=1&set ni=!ni!!r!&set "r="
set ins=!ni!&set ni=&set "inx="
)
)
if defined ins set in=&for /l %%i in (0 1 !rl!) do set "in=!ins:~%%i,1!!in!"
echo !in!&pause
Last edited by terse on 2009-10-10 at 23:02 ]