windows批处理实现10进制16进制二进制转换
win10系统后系统自带计算器在程序员计算器里在不同的进制下输入数据对应的其它进制也会显示出来而win7系统自带的计算器就没有这功能想看对应的进制数据需要手动点一下才行于是乎写了个批处理实现了输入10进制或16进制数据后输入二进制数的功能暂未实现后续实现后更新出来输出对应的10进制16进制2进制数据。运行效果图实现代码将下列代码复制到.bat文件里保存并运行bat文件即可echo offsetlocal ENABLEDELAYEDEXPANSIONset hexstrssset binstrssset /a ii0set /a dec0set /a bin0set hex_return123set bin_return123set returnPara321set hex_typexset HEX_type1Xset dec_typedset dec_type1Dset blank,set bincnt0set binsl4echo 10进制数据前加字母D大小写都有效echo 16进制数据前加0xx大小写都有效:startset bincnt0set binsl4echo 请输入数据set /p input_str::输入字符到变量input_strset /A str_num%input_str%::如果输入的是16进制数将输入的16进制数转换为10进制赋值给str_num::echo %str_num%set str_type%input_str:~0,1%::提取输入字符的第一个字符从0开始的第一个字符set str_type1%input_str:~1,1%::提取输入字符的第2个字符从1开始的第一个字符::echo !str_type!::echo !str_type1!::echo !dec_type!::pause::echo !str_num!::echo %str_num%::pauseif !str_type1! equ !hex_type! (call:dec2hex !str_num!set hex!hex_return!call:dec2bin !str_num!set bin!bin_return!echo dec%str_num%, hex!hex_return!, bin!bin_return!)else if !str_type1! equ !HEX_type1! (call:dec2hex !str_num!set hex!hex_return!call:dec2bin !str_num!set bin!bin_return!echo dec%str_num%, hex!hex_return!, bin!bin_return!)else if !str_type! equ !dec_type! (set str_num%input_str:~1,15%call:dec2hex !str_num!set hex!hex_return!call:dec2bin !str_num!set bin!bin_return!echo dec!str_num!, hex!hex_return!, bin!bin_return!)else if !str_type! !dec_type1! (set str_num%input_str:~1,15%call:dec2hex !str_num!set hex!hex_return!call:dec2bin !str_num!set bin!bin_return!echo dec!str_num!, hex!hex_return!, bin!bin_return!) else (echo input err)goto start::endpausefor /l %%i in (0,1,255) do (::echo i %%iset /a ii%%iset /a dec!ii!::echo dec %%icall:dec2hex !dec!set return2!return!set hexstr2!hexstr!echo dec %%i, return2!return!, hexstr2!hexstr2!set /a ii1)echo donepause:dec2hexset code0123456789ABCDEFset /a num%1::将第一个参数赋值给变量a::echo %num%::pauseset var%num%::echo %var%::pauseset str:againset /a tra%var%%%16::echo test::echo !tra!call,set tra%%code:~%tra%,1%%::echo tra%tra%::pauseset /a var/16::echo var%var%set str%tra%%str%if %var% geq 10 goto again::echo %var%%str%if %var% neq 0 (set hexstr0x%var%%str%) else (set hexstr0x%str%)::echo hexstr%hexstr%set hex_return%hexstr%::echo return%return%goto:eof:dec2binset code01set /a num%1set var%num%set str:again1set /a tra%var%%%2::echo %var%::echo %tra%::pausecall,set tra%%code:~%tra%,1%%::echo tra%tra%::pauseset /a var/2::echo var%var%set /a bincnt1if !bincnt! !binsl! (set str%blank%%tra%%str%::长度等于4时在字符前增加,字符set /a bincnt0) else (set str%tra%%str%)if %var% geq 2 goto again1::echo %var%%str%if %var% neq 0 (set binstr0b %var%%str%) else (set binstr0b %str%)::echo binstr%binstr%set bin_return%binstr%::echo return%return%goto:eof