中间的一堆2进制就不计算了,直接计算最终结果。 | @ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION | | if "%1"=="" ( | | set /p input=请输入: | | ) else ( | | set "input=%~1" | | ) | | set "str=0123456789ABCDEF" | | for /f "tokens=1-3 delims=- " %%a in ("!input!") do ( | | set /a a1=%%a/16,a2=%%a %% 16,b1=%%b/16,b2=%%b %% 16,c1=%%c/16,c2=%%c %% 16 | | for %%i in (!a1! !a2! !b1! !b2! !c1! !c2!) do set "num=!num!!str:~%%i,1!" | | ) | | echo,这是16进制数!num!。 | | set /a code=0x!num! %% (1"<<"14) | | echo,这是后14位的10进制数!code!。COPY |
|