- ·上一篇文章:经典批处理代码之< 阿拉伯数字转为罗马数字>
- ·下一篇文章:经典代码之<中文形式数字转换为阿拉伯数字>
- ·百度中搜索更多的关于“经典批处理代码之<10进制转换为16进制>”相关内容
- ·谷歌中搜索更多的关于“经典批处理代码之<10进制转换为16进制>”相关内容
- ******申明******
- 本站文章内容有部分为收录网络中其他网友内容,DOS资源站不保证所有的代码都适合你使用。
- 由于编辑匆忙,有可能造成某些脚本文件出现丢失代码或代码无法运行的情况,请网友根据情况自行修改。
- 如果能将出错部分反馈给我,那就更好了。
经典批处理代码之<10进制转换为16进制>
@echo off&title DOS资源站 www.cmdos.net
set /p 源数=输入十进制数字:
set /a 源数=%源数% || goto :eof
:dosomething
set /a 余数 = %源数% %% 16
set /a 源数 /= 16
call :转换 %余数%
set 余数=%ret%
set 计算结果=%余数%%计算结果%
if %源数% lss 16 goto end
goto dosomething
:转换
set ret=
if "%1" == "10" set ret=A
if "%1" == "11" set ret=B
if "%1" == "12" set ret=C
if "%1" == "13" set ret=D
if "%1" == "14" set ret=E
if "%1" == "15" set ret=F
if %1 lss 10 set ret=%1
goto :eof
:end
call :转换 %源数%
set 源数=%ret%
if "%源数%" == "0" set 源数=
echo 0x%源数%%计算结果%
set ret=
set 源数=
set 余数=
set 计算结果=
pause>nul
goto :eof
@echo off
setlocal enabledelayedexpansion
set hexstr=0 1 2 3 4 5 6 7 8 9 A B C D E F
set d=0
for %%i in (%hexstr%) do (set d!d!=%%i&set/a d+=1)
set/p scanf=能正确处理的最大数为[2147483647],请输入需要转换的十进制数:
if not defined scanf exit/b
set dec=%scanf%
call :d2h
if not defined hex set hex=0
echo %dec% 的十六进制为:0x%hex%
pause>nul
exit/b
:d2h
if %scanf% equ 0 exit/b
set/a tscanf=%scanf%"&"15
set/a scanf">>="4
set hex=!d%tscanf%!!hex!
goto :d2h

