中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 20:20
48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » [原创]*********十进制转其它进制**********
可打印版本  1,028 / 9
第1楼 s11ss 发表于 2007-09-18 17:18
银牌会员 发帖 566 积分 2,098
[原创]*********十进制转其它进制**********
@echo off
setlocal enabledelayedexpansion
::::::::::::::::::::::::::10 to 2,8,16 {s11ss 2007-9-18}::::::::::::::::::::::::::
echo Please input a number expressed in decimalism :(Assuming that it possesses 2 bytes.)
:Rec
set /p num=
if !num! gtr 32767 (call :w)
if !num! lss -32767 (call :w)
if !num! equ 0 (echo. & echo No matter what system it is expressed in,it's always 0. & goto :eof)
set /a flag=1
if !num! lss 0 (set /a num=65536+!num! & set /a flag=-1)
echo.
echo Calculating...
if !num! gtr 0 (
for %%a in (2,8,16) do (
set /a counter=0
set /a quotient=!num!
set result=
call :n %%a
call :c %%a
call :p %%a
)
goto :eof
)
:w
echo.
echo Error.The number's value is allowed in [-32767,32767] only.Please try again.
goto :Rec
:n
set /a remainder=!quotient!%%%1
set /a quotient=!quotient!/%1
if %1 equ 16 (
call :16 10 A
call :16 11 B
call :16 12 C
call :16 13 D
call :16 14 E
call :16 15 F
)
set result=!remainder!!result!
set /a counter+=1
if !quotient! equ 0 (goto :eof) else (goto :n)
:16
if !remainder! equ %1 set remainder=%2
goto :eof
:p
if %1 equ 2 (
set newrslt=!result:~0,4!
for /l %%a in (4,4,16) do (
set newrslt=!newrslt! !result:~%%a,4!
)
set t=1.Binary:
set result=!newrslt!
echo.
echo The result is :
)
if %1 equ 8 (set t=2.Octal:)
if %1 equ 16 (set t=3.Hex:)
echo.
echo !t!
echo !result!
goto :eof
:c
if %1 equ 2 (set a=16& set b=0& set c=1)
if %1 equ 8 (set a=6& set b=0& set c=1)
if %1 equ 16 (set a=4& set b=0& set c=F)
if not !counter! equ !a! (
set /a cnum=!a!-!counter!
if !flag! equ 1 (set cch=!b!) else (set cch=!c!)
for /l %%a in (1,1,!cnum!) do (set result=!cch!!result!)
)
goto :eof
第2楼 wudixin96 发表于 2007-09-18 17:52
银牌会员 发帖 931 积分 1,928
呵呵,楼主真有意思,每天一原创。

加分加分
第3楼 vkill 发表于 2007-09-18 20:15
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
10 to 16 可以试试 ping
第4楼 s11ss 发表于 2007-09-18 23:24
银牌会员 发帖 566 积分 2,098
Originally posted by vkill at 2007-9-18 08:15 PM:
10 to 16 可以试试 ping




ping ?延时?
第5楼 scriptor 发表于 2007-09-19 00:15
银牌会员 发帖 555 积分 1,187
这个好似我以前写过一个任意进制的
呵呵...

鼓励原创.......加油啊!!
第6楼 vkill 发表于 2007-09-19 21:02
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by s11ss at 2007-9-18 23:24:




ping ?延时?

for 来处理ping的回显
第7楼 s11ss 发表于 2007-09-19 23:11
银牌会员 发帖 566 积分 2,098
Originally posted by vkill at 2007-9-19 09:02 PM:

for 来处理ping的回显


请问与进制转换有关系么?
第8楼 lxmxn 发表于 2007-09-19 23:59
版主 发帖 4,938 积分 11,386
Originally posted by s11ss at 2007-9-19 23:11:


请问与进制转换有关系么?
可以用ping命令简单实现10到16进制的转换,论坛以前有过讨论,搜索一下先?
第9楼 zh159 发表于 2007-09-20 00:38
金牌会员 发帖 1,467 积分 3,687
这是收藏的一段进制转换器,原来是html的,我把它改为HTA了
第10楼 s11ss 发表于 2007-09-20 15:26
银牌会员 发帖 566 积分 2,098
Originally posted by lxmxn at 2007-9-19 11:59 PM:
可以用ping命令简单实现10到16进制的转换,论坛以前有过讨论,搜索一下先?



又长见识了,呵呵~~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023