中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » CMD下如何把得到的10进制转换成16进制?
作者:
标题: CMD下如何把得到的10进制转换成16进制? 上一主题 | 下一主题
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『楼 主』:  CMD下如何把得到的10进制转换成16进制?

XP命令行下该如何实验??

条件:不用第三方工具.

2006-6-26 01:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
220110
荣誉版主




积分 718
发帖 313
注册 2005-9-26
状态 离线
『第 2 楼』:  

给个思路:
先用set 获取用户的十进制数输入;再对该数循环取模,把取模所得的余数分别记录下来即可(由于我的CMD无法识别取模运算符%及%=,所以无测试过的代码贴上)

2006-6-27 20:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
3742668
荣誉版主





积分 2013
发帖 718
注册 2006-2-18
状态 离线
『第 3 楼』:  


@echo off
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
本来打算用中文变量名来增加可读性,结果由于没有什么好点的中文名词反而弄巧成拙。
多一句: 以后此类非纯DOS贴建议发到 DOS批處理 & 腳本技術(批處理室) 版。

[ Last edited by 3742668 on 2006-6-28 at 15:54 ]

   此帖被 +3 点积分     点击查看详情   
评分人:【 lxmxn 分数: +3  时间:2006-12-10 12:19


2006-6-28 15:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
voiL
中级用户





积分 384
发帖 189
注册 2005-10-19
状态 离线
『第 4 楼』:  

OK,我知道了.

感谢3742668版主的帮助.

2006-7-1 09:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: