一、十六进制转十进制
十六进制数转十进制数相对比较简单,可以直接通过0x来实现。
见如下代码:
@echo off
chcp 65001set t=aaset /a hex=0x%t%
echo data=%hex%pause
结果:
二、十进制转十六进制
这个转化比较麻烦,没有简便的方式转化。见如下代码:
@echo off
chcp 65001set code=0123456789ABCDEFset dec=255
echo dec:%dec%
echo %dec%|findstr "[^0-9]"&&exit /b 1
:again
set /a tra=%dec%%%16
call,set tra=%%code:~%tra%,1%%
set /a dec/=16
set str=%tra%%str%
if %dec% geq 16 goto again
call,set dec=%%code:~%dec%,1%%
echo hex:0x%dec%%str%pause
结果:
三、互转
@echo off
chcp 65001
setlocal enabledelayedexpansionset code=0123456789ABCDEFset /a num=65535call :dec2hex %num% hex
echo.
echo 结果:%errorlevel%
if %errorlevel%==0 (echo dec2hex结果=0x%hex%set /a ori=0x!hex!echo ori=!ori!) else (echo 转化错误)pause:dec2hex
set dec=%1
echo dec:%dec%
echo %dec%|findstr "[^0-9]"&&exit /b 1
:again
set /a tra=%dec%%%16
call,set tra=%%code:~%tra%,1%%
set /a dec/=16
set str=%tra%%str%
if %dec% geq 16 goto again
call,set dec=%%code:~%dec%,1%%
echo hex:0x%dec%%str%
set hex=%dec%%str%
exit /b 0endlocal
结果: