中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 10进制转16进制: 上一主题 | 下一主题
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『楼 主』:  10进制转16进制:


@echo off
set code=0123456789abcdef
:enter
cls&set /p num=请输入一个十进制数字:
echo %num%|findstr "[^0-9]"&&goto enter
set var=%num%
:again
set /a ws=%var%%%16
call,set ws=%%code:~%ws%,1%%
set /a var/=16
set str=%ws%%str%
if %var% geq 16 goto again
cls&echo 十进制数%num%转换为16进制数为:%var%%str%
pause>nul
[ Last edited by zw19750516 on 2008-7-5 at 01:50 PM ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 WANKOILZ 分数: +2  时间:2008-7-7 14:53




批处理之家新域名:www.bathome.net
2008-7-5 13:19
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

以前看别人写的
@echo off
rem 最大处理数字是2147483647
setlocal ENABLEDELAYEDEXPANSION
set /p num=num?
set str=0123456789ABCDEF
call :A %num%
echo %T3%
echo %num%
pause
exit

:A
set T1=%1
SET T3=
:B
set/A T2=T1%%16
SET T2=!str:~%t2%,1!
SET/A T1=%T1%/16
SET T3=%T2%%T3%
IF %T1%==0 GOTO :EOF
GOTO B




2008-7-5 13:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-7-5 01:19 PM:
[code]
@echo off
set code=0123456789abcdef
:enter
cls&set /p num=请输入一个十进制数字:
echo %num%|findstr "[^0-9]"&&goto enter
set var=%num%
:again
set /a  ...

Sorry。。。是我肤浅。。。

[ Last edited by pusofalse on 2008-7-5 at 02:17 PM ]



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-7-5 14:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hackerscans
初级用户





积分 73
发帖 51
注册 2007-8-31
状态 离线
『第 4 楼』:  

强烈的向楼上各位学习。

2008-7-5 14:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 5 楼』:  16进制转10进制:


@echo off
set code=1 2 3 4 5 6 7 8 9 a b c d e f&set m=1
set /p str=请输入16进制数字:
:lp
set a=%str:~-1%
for %%i in (%code%) do set /a n+=1&if "%%i" equ "%a%" call,set a=%%n%%
set /a num+=m*a
set /a m*=16,n=0
if defined str set str=%str:~,-1%&goto lp
echo %num%&pause>nul
[ Last edited by zw19750516 on 2008-7-5 at 02:25 PM ]



批处理之家新域名:www.bathome.net
2008-7-5 14:23
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 6 楼』:  

16进制转10进制:有更简单的方法。
@echo off
set /p b=请输入16进制数字:
set /a a=0x%b%
echo %a%
pause


   此帖被 +3 点积分     点击查看详情   
评分人:【 bat-zw 分数: +3  时间:2008-7-5 15:10




致精致简!
2008-7-5 14:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pusofalse
银牌会员




积分 1604
发帖 646
注册 2008-4-13
状态 离线
『第 7 楼』:  hexadecimal2decimal

16进制转10进制,我知道一个再简单不过的方法,是昨天看到那篇获取asscii码的帖子知道的...

set/p num=
set/a a=0x%num%
echo %a%
pause



心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
2008-7-5 14:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by 26933062 at 2008-7-5 14:42:
16进制转10进制:有更简单的方法。
@echo off
set /p b=请输入16进制数字:
set /a a=0x%b%
echo %a%
pause

我才知道有这么简单,看来学习真无止境啊。



批处理之家新域名:www.bathome.net
2008-7-5 15:07
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  

rem 三种不同的数据输入,但输出时都会使用十进制。
rem 十进制
set /a 123
rem 八进制
set /a 012
rem 十六进制
set /a 0xa



2008-7-5 15:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 10 楼』:  

进制转换其实以前都有讨论过



2008-7-6 00:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『第 11 楼』:  

好象以前发过一个
加个变量 就可以实现十进制转任意进制



简单!简单!再简单!
2008-7-6 17:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by terse at 2008-7-6 05:02 PM:
好象以前发过一个
加个变量 就可以实现十进制转任意进制

当时的代码
@echo off&setlocal enabledelayedexpansion
set/p a=请输入要转换的十进制数:
set aa=%a%
set/p b=请输入要转换的几进制?
set str=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
:hex
    set/a m=!a!/!b!
    set/a n=!a!%%!b!
    set n=!str:~%n%,1!
    set h=!n!!h!
    if !m! geq !b! set a=!m! &goto hex
    set m=!str:~%m%,1!
    echo !aa!的!b!进制数 !m!!h!


   此帖被 +2 点积分    点击查看详情   
评分人:【 WANKOILZ 分数: +2  时间:2008-7-8 22:11




2008-7-6 19:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ywwywwjm
初级用户





积分 42
发帖 13
注册 2007-8-3
状态 离线
『第 13 楼』:  

echo ibase=10;obase=16;10|bc

2008-7-8 01:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 14 楼』:  


printf "%x" "10"
printf.exe
http://upload.cn-dos.net/img/580.zip



2008-7-8 02:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: