中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 03:12
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 10进制转16进制: 查看 2,119 回复 13
楼 主 10进制转16进制: 发表于 2008-07-05 13:19 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@echo off
set code=0123456789abcdef
:enter
cls&set /p num=请输入一个十进制数字:
echo %num%|findstr ""&&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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
WANKOILZ +2 2008-07-07 14:53
批处理之家新域名:www.bathome.net
2 发表于 2008-07-05 13:39 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
以前看别人写的

@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
3 发表于 2008-07-05 14:04 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
Originally posted by zw19750516 at 2008-7-5 01:19 PM:

@echo off
set code=0123456789abcdef
:enter
cls&set /p num=请输入一个十进制数字:
echo %num%|findstr ""&&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...^_^
4 发表于 2008-07-05 14:19 ·  中国 山东 潍坊 联通
初级用户
★★
积分 73
发帖 51
注册 2007-08-31 10:04
18年会员
UID 96241
性别 男
状态 离线
强烈的向楼上各位学习。
5 16进制转10进制: 发表于 2008-07-05 14:23 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线

@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
6 发表于 2008-07-05 14:42 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
16进制转10进制:有更简单的方法。

@echo off
set /p b=请输入16进制数字:
set /a a=0x%b%
echo %a%
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
bat-zw +3 2008-07-05 15:10
致精致简!
7 hexadecimal2decimal 发表于 2008-07-05 14:45 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
16进制转10进制,我知道一个再简单不过的方法,是昨天看到那篇获取asscii码的帖子知道的...

set/p num=
set/a a=0x%num%
echo %a%
pause
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
8 发表于 2008-07-05 15:07 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
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
9 发表于 2008-07-05 15:58 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
rem 三种不同的数据输入,但输出时都会使用十进制。
rem 十进制
set /a 123
rem 八进制
set /a 012
rem 十六进制
set /a 0xa
10 发表于 2008-07-06 00:03 ·  中国 广西 玉林 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
21年会员
UID 44210
状态 离线
进制转换其实以前都有讨论过
11 发表于 2008-07-06 17:02 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
好象以前发过一个
加个变量 就可以实现十进制转任意进制
简单!简单!再简单!
12 发表于 2008-07-06 19:25 ·  中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
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!
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
WANKOILZ +2 2008-07-08 22:11
13 发表于 2008-07-08 01:51 ·  中国 广东 江门 联通
初级用户
积分 42
发帖 13
注册 2007-08-03 23:26
19年会员
UID 94610
性别 男
状态 离线
echo ibase=10;obase=16;10|bc
14 发表于 2008-07-08 02:17 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
printf "%x" "10"


printf.exe
http://upload.cn-dos.net/img/580.zip
论坛跳转: