中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 16:34
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 十进制数转任意进制问题
可打印版本  1,051 / 8
第1楼 terse 发表于 2008-03-04 23:12
银牌会员 发帖 946 积分 2,404
十进制数转任意进制问题
任意进制数 算式应该成立的吧 高人看一下
谢26933062指点 gtr改geq



下面是单独转2进制的 要让它能转负数 有可能吗

@echo off
set/p a=请输入要转换的十进制数:
set aa=%a%
if %a% gtr 2147483647 echo 超出运算范围&goto&exit
:str
set/a b=^!(^!(%a%%%2))
set n=%b%%n%
if %a% geq 2 set/a a=%a%/2 &&goto str
cls
echo %aa% 的二进制为 %n%
pause

[ Last edited by terse on 2008-3-5 at 02:23 PM ]
第2楼 junchen2 发表于 2008-03-05 11:17
高级用户 发帖 219 积分 537 来自 杭州--半山
请输入要转换的十进制数:65536
请输入要转换的几进制?16
65536的16进制数 g000
请按任意键继续. . .


有错误。应该是10000
16进制是只包含0-9以及a-f.

7777 的二进制为 1111001100001
请按任意键继续. . .

有错误。
应该是0111011101110111

[ Last edited by junchen2 on 2008-3-5 at 11:59 AM ]
第3楼 26933062 发表于 2008-03-05 12:05
银牌会员 发帖 879 积分 2,268
最后商为16时,还要除一次吧?
把 gtr 改为 geq 应该就对了,答案是 10000 不知道对不对?

[ Last edited by 26933062 on 2008-3-5 at 12:23 PM ]
第4楼 terse 发表于 2008-03-05 14:22
银牌会员 发帖 946 积分 2,404
Originally posted by junchen2 at 2008-3-5 11:17:
请输入要转换的十进制数:65536
请输入要转换的几进制?16
65536的16进制数 g000
请按任意键继续. . .


有错误。应该是10000
16进制是只包含0-9以及a-f.
...

65536的16进制数 g000 这个问题应该是GTR问题,改为geq应该可以

十进制的7777 的二进制为 1111001100001 这个应该对吧 十六进制的7777才是0111011101110111啊
另:
谢26933062的指教

[ Last edited by terse on 2008-3-5 at 02:26 PM ]
第5楼 junchen2 发表于 2008-03-06 00:42
高级用户 发帖 219 积分 537 来自 杭州--半山
十进制的7777 的二进制为 1111001100001 这个应该对吧 十六进制的7777才是0111011101110111啊

我倒!翻一下程序设计书吧。
第6楼 terse 发表于 2008-03-06 00:50
银牌会员 发帖 946 积分 2,404
Originally posted by junchen2 at 2008-3-6 00:42:
十进制的7777 的二进制为 1111001100001 这个应该对吧 十六进制的7777才是0111011101110111啊

我倒!翻一下程序设计书吧。

呵呵 我用的是 开始-所有程序-附件-计算器
第7楼 junchen2 发表于 2008-03-06 00:59
高级用户 发帖 219 积分 537 来自 杭州--半山
呵呵。是偶搞错了,看样子我是个半桶水啊,哭哭哭。。。。
第8楼 HAT 发表于 2008-03-06 12:23
版主 发帖 5,017 积分 9,023
十进制转二进制:除2倒取余法
7777/2=3888 余1
3888/2=1944 余0
1944/2=972 余0
972/2=486 余0
486/2=243 余0
243/2=121 余1
121/2=60 余1
60/2=30 余0
30/2=15 余0
15/2=7 余1
7/2=3 余1
3/2=1 余1
1
结果:1111001100001

十六进制转二进制:8421法
7:0111
7:0111
7:0111
7:0111
结果:0111011101110111
第9楼 suntb 发表于 2008-03-06 14:38
高级用户 发帖 277 积分 581
进来学习下 代码保存备用了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023