中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 十进制数转任意进制问题 上一主题 | 下一主题
terse
银牌会员





积分 2404
发帖 946
注册 2005-9-8
状态 离线
『楼 主』:  十进制数转任意进制问题

任意进制数 算式应该成立的吧 高人看一下 谢26933062指点 gtr改geq
@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!
pause
下面是单独转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 ]




简单!简单!再简单!
2008-3-4 23:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 2 楼』:  

请输入要转换的十进制数: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 ]


2008-3-5 11:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
26933062
银牌会员





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

最后商为16时,还要除一次吧? 把 gtr 改为 geq 应该就对了,答案是 10000 不知道对不对? [ Last edited by 26933062 on 2008-3-5 at 12:23 PM ]




致精致简!
2008-3-5 12:05
查看资料  发短消息 网志   编辑帖子  回复  引用回复
terse
银牌会员





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

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 ]




简单!简单!再简单!
2008-3-5 14:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 5 楼』:  

十进制的7777 的二进制为 1111001100001 这个应该对吧 十六进制的7777才是0111011101110111啊 我倒!翻一下程序设计书吧。


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





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

Originally posted by junchen2 at 2008-3-6 00:42: 十进制的7777 的二进制为 1111001100001 这个应该对吧 十六进制的7777才是0111011101110111啊 我倒!翻一下程序设计书吧。
呵呵 我用的是 开始-所有程序-附件-计算器




简单!简单!再简单!
2008-3-6 00:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
junchen2
高级用户





积分 537
发帖 219
注册 2007-8-4
来自 杭州--半山
状态 离线
『第 7 楼』:  

呵呵。是偶搞错了,看样子我是个半桶水啊,哭哭哭。。。。


2008-3-6 00:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





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

十进制转二进制:除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


2008-3-6 12:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 9 楼』:  

进来学习下 代码保存备用了


2008-3-6 14:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: